Che cos'è mutevole e immutabile in Python?
Pubblicato: 2022-09-22In Python, ogni variabile contiene un'istanza di qualsiasi oggetto in due tipi, cioè mutabile e immutabile. Un ID oggetto univoco viene assegnato a un oggetto ogni volta che ne viene creata un'istanza. Il runtime definisce il tipo di oggetto e non può essere modificato in seguito.
Tuttavia, quello mutevole è un oggetto mutevole. Quando diciamo mutevole, significa che lo stato dell'oggetto interno può essere mutato. Allo stesso tempo, lo stato dell'oggetto incapace di cambiare dopo la creazione è un oggetto immutabile. Sia gli stati mutabili che immutabili sono parte integrante della struttura dei dati di Python.
La caratteristica della mutabilità degli oggetti in Python lo rende un linguaggio tipizzato dinamicamente. Mutevole e immutabile in Python è un concetto piuttosto essenziale, ma spesso viene confuso a causa della loro natura intransitiva di immutabilità.
Scopriamo tutto su di loro e le principali differenze.
Dai un'occhiata ai nostri corsi online di scienza dei dati per migliorare le tue competenze
Le migliori competenze di Data Science da imparare per migliorare le competenze
SL. No | Le migliori competenze di data science da apprendere nel 2022 | |
1 | Corsi online di analisi dei dati | Corsi online di statistica inferenziale |
2 | Corsi online di test di ipotesi | Corsi online di regressione logistica |
3 | Corsi di regressione lineare | Corsi online di algebra lineare per analisi |
Stato mutevole in Python
La parola "mutevole" si traduce direttamente in "cambiabile" o qualcosa che può essere "mutato". Definisce un oggetto aperto alle modifiche e, in Python, "mutabile" si riferisce alla capacità di un oggetto di modificare i valori. Questi oggetti spesso memorizzano la raccolta di dati e contengono elenchi di tipi integrati, set, dizionari e classi definite dall'utente.
Stato di definizione immutabile in Python
Immutabile in Python è quando non è possibile modificare il tipo di oggetto nel tempo. Se non è possibile modificare il valore di un oggetto in Python, è noto come oggetto immutabile. Una volta creato un oggetto immutabile, il suo valore rimane permanente e immutabile. Gli oggetti di tipo integrato immutabili sono numeri, stringhe, tuple, insiemi bloccati e classi definite dall'utente.
Oggetti in Python
Prima di approfondire la mutabilità e l'immutabilità in Python, impariamo prima cosa sono gli oggetti. In Python, tutto è considerato un oggetto e ogni oggetto ha tre attributi:
- Identità: si riferisce all'indirizzo dell'oggetto nella memoria del computer.
- Tipo : si riferisce al tipo di oggetto creato. Ad esempio, intero, stringa, elenco e simili.
- Valore : si riferisce al valore memorizzato dall'oggetto. Ad esempio, List=[5,6,7] memorizzerebbe i numeri 5, 6 e 7.
Anche se l'ID e il tipo di un oggetto non possono essere modificati dopo la creazione, i valori sono soggetti a modifiche per gli oggetti mutabili.
Oggetti mutabili in Python
Gli oggetti mutabili sono gli oggetti in Python che possono essere mutati o modificati. I codici servono meglio per insegnare l'implementazione di questi oggetti. Pertanto, diamo un'occhiata ad alcuni codici e proviamo a capire meglio gli oggetti mutabili:
- Per fare una lista contenente i nomi dei frutti
frutta= ['Mango', 'Papaia', 'Arancia']
- Per stampare elementi dall'elenco dei frutti, divisi da virgola e spazio
per la frutta nella frutta:
print(frutta, fine=', ')
Uscita [1]: Mango, Papaia, Arancio
- Per stampare la posizione dell'oggetto creata nell'indirizzo di memoria in formato esadecimale
Esplora i nostri popolari corsi online di scienza dei dati
Programma post-laurea esecutivo in Data Science da IIITB | Programma di certificazione professionale in Data Science per il processo decisionale aziendale | Master of Science in Data Science presso l'Università dell'Arizona |
Programma di certificazione avanzato in Data Science da IIITB | Programma di certificazione professionale in Data Science e Business Analytics presso l'Università del Maryland | Corsi online di scienza dei dati |
print(hex(id(frutta)))
Uscita [2]: 0x1691d7de8c8
- Aggiunta di un nuovo frutto all'elenco 'frutti'
fruit.append('Uva')
- Per stampare gli elementi presenti nell'elenco 'frutti', separati da virgola e spazio
per la frutta nella frutta:
print(frutta, fine=', ')
Uscita [3]: Mango, Papaia, Arancia, Uva
- Per stampare la posizione dell'oggetto creata nell'indirizzo di memoria in formato esadecimale
print(hex(id(frutta)))
Uscita [4]: 0x1691d7de8c8
L'esempio mostra che lo stato interno dell'oggetto "frutti" può facilmente cambiare aggiungendo un altro frutto, "Uva" ad esso. Tuttavia, l'indirizzo di memoria dell'oggetto rimane lo stesso, dimostrando che non è necessario creare un nuovo oggetto. Piuttosto, lo stesso oggetto potrebbe essere cambiato o mutato. Questo esempio mostra che l'oggetto con il nome della variabile di riferimento 'fruits', un tipo di elenco, è modificabile.
Oggetti immutabili in Python
Gli oggetti immutabili in Python sono gli oggetti i cui valori non possono essere modificati. Seguiamo un semplice codice per capire meglio cosa sono gli oggetti immutabili e come funzionano. Il codice è riportato di seguito:-
- Per creare una tupla contenente il nome inglese dei mesi
mesi= 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto'
- Per stampare gli elementi dei mesi tuple
stampa (mesi)
Output [1]: ('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto')
- Per stampare la posizione dell'oggetto, che viene creata nell'indirizzo di memoria in formato esadecimale
print(hex(id(mesi)))
Uscita [2]: 0x1691cc35090
- È importante notare che le tuple sono immutabili; pertanto, non riescono a includere più elementi nuovi. Quindi, è necessario utilizzare l'unione di tuple con l'operatore # + per aggiungere un nuovo mese immaginario nella tupla 'mesi'.
mesi += 'Pitoneo'
- Per stampare gli elementi della tupla 'mesi'.
stampa (mesi)
Output [3]: ('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Pitone')
- Per stampare la posizione dell'oggetto creata nell'indirizzo di memoria in formato esadecimale
print(hex(id(mesi)))
Uscita [4]: 0x1691cc8ad68
Leggi i nostri popolari articoli sulla scienza dei dati
Percorso di carriera nella scienza dei dati: una guida completa alla carriera | Crescita professionale di Data Science: il futuro del lavoro è qui | Perché la scienza dei dati è importante? 8 modi in cui la scienza dei dati porta valore al business |
Rilevanza della scienza dei dati per i manager | La scheda tecnica definitiva per la scienza dei dati che ogni data scientist dovrebbe avere | I 6 principali motivi per cui dovresti diventare un data scientist |
Un giorno nella vita di Data Scientist: cosa fanno? | Mito sfatato: la scienza dei dati non ha bisogno di codifica | Business Intelligence vs Data Science: quali sono le differenze? |
Questo esempio dimostra che i nomi delle variabili possono essere facilmente utilizzati per fare riferimento a un oggetto, una specie di tupla composta da otto elementi. Tuttavia, l'ID della posizione di memoria della tupla vecchia e nuova non è lo stesso. Pertanto, non è stato possibile modificare lo stato interno dell'oggetto "mesi". Pertanto, il gestore del programma Python ha creato un nuovo oggetto nell'indirizzo di memoria. Inoltre, il nome della variabile "mesi" faceva riferimento anche al nuovo oggetto con nove elementi. Quindi, dimostrando che la tupla, l'oggetto con il nome della variabile di riferimento 'mesi', è un oggetto immutabile.
Conclusione
Gli oggetti mutabili vengono utilizzati principalmente per consentire eventuali aggiornamenti futuri. D'altra parte, l'immutabilità offre anche molte applicazioni efficaci e pratiche per varie attività sensibili in un luogo centrato sulla rete, consentendo l'elaborazione parallela. Oggetti immutabili, sigilla i valori e assicurati che nessuno dei thread richiami la sovrascrittura/aggiornamento dei dati. È ottimo per scrivere codici permanenti che non avranno bisogno di modifiche in futuro.
Se sei un programmatore in erba o un appassionato di scienza dei dati, conoscere gli oggetti mutabili e immutabili in Python ti aiuterà a scegliere questo campo come tua carriera. Il modo migliore per conoscerli è iscriversi all'Executive Post Graduate Program in Data Science su upGrad.
Il corso è creato sotto la guida di esperti docenti, fornendo una conoscenza approfondita degli argomenti di tendenza per preparare migliaia di studenti a una carriera a prova di futuro.
Q1. Quali sono le differenze significative tra mutabile e immutabile in Python?
Risposta: Lo stato o il valore di un oggetto è aperto alla modifica dopo la creazione in mutabile Lo stato o il valore di un oggetto non è aperto alla modifica dopo la creazione in immutabile Gli oggetti mutabili non sono thread-safe. Gli oggetti immutabili sono completamente thread-safe Le classi mutabili non sono definitive. Prima di creare un oggetto immutabile, devi rendere la classe finale.
Q2. In Python, cosa sono i tipi di dati mutabili e immutabili?
Risposta: I tipi di dati mutabili in Python sono list, set, dizionario e classi definite dall'utente e i tipi di dati immutabili sono int, decimal, float, bool, tuple, string e range.
Q3. Gli elenchi sono mutabili in Python?
Risposta: In Python, le liste sono i tipi di dati mutabili con elementi facilmente modificabili. Inoltre, puoi sostituire i singoli elementi e persino modificare l'ordine degli elementi dopo aver creato l'elenco.