Ce este mutabil și imuabil în Python?

Publicat: 2022-09-22

În Python, fiecare variabilă deține o instanță a oricărui obiect de două feluri, adică mutabil și imuabil. Un obiect unic este atribuit unui obiect ori de câte ori este instanțiat. Timpul de execuție definește tipul de obiect și nu poate fi modificat ulterior.

Totuși, cel schimbător este un obiect mutabil. Când spunem mutabil, înseamnă că starea obiectului intern poate fi mutată. Simultan, starea obiectului incapabil să se schimbe după creare este un obiect imuabil. Atât stările mutabile, cât și cele imuabile sunt parte integrantă a structurii de date a lui Python.

Caracteristica mutabilității obiectelor în Python îl face un limbaj tipizat dinamic. Mutabil și imuabil în Python este destul de esențial ca concept, dar sunt adesea confundate din cauza naturii lor intranzitive de imuabilitate.

Să aflăm totul despre ele și diferențele cheie.

Consultați cursurile noastre online de știință a datelor pentru a vă perfecționa

Cuprins

Cele mai bune abilități de știință a datelor pe care să înveți să-ți perfecționezi

SL. Nu Cele mai bune abilități de știință a datelor de învățat în 2022
1 Cursuri online de analiză a datelor Cursuri online de statistică inferenţială
2 Cursuri online de testare a ipotezelor Cursuri online de regresie logistică
3 Cursuri de regresie liniară Algebră liniară pentru cursuri online de analiză

Stare mutabilă în Python

Cuvântul „modabil” se traduce direct prin „schimbător” sau ceva care poate fi „mutat”. Acesta definește un obiect deschis la modificări, iar în Python, „mutable” se referă la capacitatea unui obiect de a schimba valori. Aceste obiecte stochează adesea colecția de date și conțin liste de tipuri încorporate, seturi, dicționare și clase definite de utilizator.

Stare de definiție imuabilă în Python

Imuabil în Python este atunci când nu puteți schimba tipul de obiect în timp. Dacă nu este posibilă modificarea valorii unui obiect în Python, acesta este cunoscut ca obiect imuabil. Odată ce un obiect imuabil este creat, valoarea acestuia rămâne permanentă și neschimbabilă. Obiectele de tip încorporat imuabile sunt numerele, șirurile, tuplurile, seturile înghețate și clasele definite de utilizator.

Obiecte în Python

Înainte de a aprofunda mutabilitatea și imuabilitatea în Python, să aflăm mai întâi ce sunt obiectele. În Python, totul este considerat un obiect și fiecare obiect are trei atribute:

  • Identitate: se referă la adresa obiectului din memoria computerului.
  • Tip : Se referă la tipul de obiect care este realizat. De exemplu, întreg, șir, listă și altele asemenea.
  • Valoare : se referă la valoarea pe care o stochează obiectul. De exemplu, List=[5,6,7] ar stoca numerele 5, 6 și 7.

Chiar dacă ID-ul și Tipul unui obiect nu sunt deschise pentru modificare după creare, valorile sunt deschise modificărilor pentru obiectele mutabile.

Obiecte mutabile în Python

Obiectele mutabile sunt obiectele din Python care pot fi modificate sau modificate. Codurile servesc mai bine la predarea despre implementarea acestor obiecte. Prin urmare, să ne uităm la câteva coduri și să încercăm să înțelegem mai bine obiectele mutabile:

  • Pentru realizarea unei liste care să conțină numele fructelor

fructe= ['Mango', 'Papaya', 'Orange']

  • Pentru imprimarea elementelor din lista de fructe, împărțite prin virgulă și spațiu

pentru fructe în fructe:

print(fruct, final=', ')

Ieșire [1]: Mango, Papaya, Portocală

  • Pentru imprimarea locației obiectului care este creată în adresa de memorie într-un format hexazecimal

Explorați cursurile noastre populare online de știință a datelor

Program Executive Postuniversitar în Știința Datelor de la IIITB Program de certificat profesional în știința datelor pentru luarea deciziilor de afaceri Master în Știința Datelor de la Universitatea din Arizona
Program de certificat avansat în știința datelor de la IIITB Program de certificat profesional în știința datelor și analiză de afaceri de la Universitatea din Maryland Cursuri online de știință a datelor

print(hex(id(fructe)))

Ieșire [2]: 0x1691d7de8c8

  • Adăugarea unui nou fruct la lista „fructe”

fructe.append('Struguri')

  • Pentru imprimarea elementelor prezente în lista „fructe”, separate prin virgulă și spațiu

pentru fructe în fructe:

print(fruct, final=', ')

Ieșire [3]: mango, papaya, portocale, struguri

  • Pentru imprimarea locației obiectului creat în adresa de memorie într-un format hexazecimal

print(hex(id(fructe)))

Ieșire [4]: ​​0x1691d7de8c8

Exemplul arată că starea internă a obiectului „fructe” se poate schimba cu ușurință adăugând încă un fruct, „struguri”. Cu toate acestea, adresa de memorie a obiectului rămâne aceeași, demonstrând că nu este necesar să fie creat un nou obiect. Mai degrabă, același obiect ar putea fi schimbat sau mutat. Acest exemplu arată că obiectul cu numele variabilei de referință „fructe”, un tip de listă, este mutabil.

Obiecte imuabile în Python

Obiectele imuabile în Python sunt obiectele ale căror valori nu pot fi modificate. Să urmăm un cod simplu pentru a înțelege mai bine ce sunt obiectele imuabile și cum funcționează. Codul este dat mai jos: -

  • Pentru crearea unui tuplu care conține numele în engleză al lunilor

luni= „Ianuarie”, „Februarie”, „Martie”, „Aprilie”, „Mai”, „Iunie”, „Iulie”, „August”

  • Pentru imprimarea elementelor lunilor tuple

imprimare (luni)

Rezultat [1]: („Ianuarie”, „Februarie”, „Martie”, „Aprilie”, „Mai”, „Iunie”, „Iulie”, „August”)

  • Pentru imprimarea locației obiectului, care este creată în adresa de memorie într-un format hexazecimal

print(hex(id(luni)))

Ieșire [2]: 0x1691cc35090

  • Este important de reținut că tuplurile sunt imuabile; prin urmare, nu reușesc să includă mai multe elemente noi. Prin urmare, trebuie să utilizați îmbinarea tuplurilor cu operatorul # + pentru a adăuga o nouă lună imaginară în tuplul „luni”.

luni += „Pythonuary”

  • Pentru imprimarea elementelor tuplului „luni”.

imprimare (luni)

Rezultat [3]: („Ianuarie”, „Februarie”, „Martie”, „Aprilie”, „Mai”, „Iunie”, „Iulie”, „August”, „Pythonuary”)

  • Pentru imprimarea locației obiectului creat în adresa de memorie într-un format hexazecimal

print(hex(id(luni)))

Ieșire [4]: ​​0x1691cc8ad68

Citiți articolele noastre populare despre știința datelor

Calea de carieră în știința datelor: un ghid cuprinzător de carieră Creșterea carierei în știința datelor: viitorul muncii este aici De ce este importantă știința datelor? 8 moduri în care știința datelor aduce valoare afacerii
Relevanța științei datelor pentru manageri Ultima fișă pentru știința datelor pe care ar trebui să o aibă fiecare cercetător de date Top 6 motive pentru care ar trebui să devii un Data Scientist
O zi în viața omului de știință a datelor: ce fac ei? Mitul distrus: Știința datelor nu are nevoie de codare Business Intelligence vs Data Science: Care sunt diferențele?

Acest exemplu demonstrează că numele variabilelor pot fi folosite cu ușurință pentru referirea unui obiect, un fel de tuplu format din opt elemente. Cu toate acestea, ID-ul locației de memorie al vechiului și al noului tuplu nu este același. Prin urmare, starea internă „luni” a obiectului nu a putut fi modificată. Prin urmare, managerul de programe Python a creat un nou obiect în adresa de memorie. În plus, numele variabilei „luni” face referire și la noul obiect cu nouă elemente. Prin urmare, demonstrând că tuplul, obiectul cu numele variabilei de referință „luni”, este un obiect imuabil.

Concluzie

Obiectele modificabile sunt utilizate în principal pentru a permite actualizările viitoare. Pe de altă parte, imuabilitatea oferă, de asemenea, multe aplicații eficiente și practice pentru diferite sarcini sensibile într-un loc centrat pe rețea, permițând procesarea paralelă. Obiecte imuabile, sigilați valorile și asigurați-vă că niciunul dintre fire nu invocă suprascriere/actualizare a datelor. Este excelent pentru a scrie coduri permanente care nu vor avea nevoie de modificări în viitor.

Dacă sunteți un programator în devenire sau un pasionat de știința datelor, învățarea despre obiectele mutabile și imuabile în Python vă va ajuta să alegeți acest domeniu ca carieră. Cel mai bun mod de a afla despre acestea este înscrierea la Programul Executive Postuniversitar în Știința Datelor pe upGrad.

Cursul este creat sub îndrumarea experților facultății, oferind cunoștințe aprofundate despre subiecte în tendințe pentru a pregăti mii de cursanți pentru o carieră de viitor.

Î1. Care sunt diferențele semnificative dintre mutabil și imuabil în Python?

Răspuns: Starea sau valoarea unui obiect este deschisă modificării după crearea în modul mutabil. Starea sau valoarea unui obiect nu este deschisă modificării după crearea în imuabil. Obiectele mutabile nu sunt sigure pentru fire. Obiectele imuabile sunt complet sigure pentru fire Clasele mutabile nu sunt finale. Înainte de a crea un obiect imuabil, trebuie să faceți clasa finală.

Q2. În Python, ce sunt tipurile de date mutabile și imuabile?

Răspuns: Tipurile de date modificabile în Python sunt clase listă, set, dicționar și definite de utilizator, iar tipurile de date imuabile sunt int, decimal, float, bool, tuple, string și range.

Q3. Sunt listele mutabile în Python?

Răspuns: În Python, listele sunt tipuri de date modificabile cu elemente ușor de modificat. În plus, puteți înlocui elementele individuale și chiar puteți schimba ordinea elementelor după crearea listei.