Piton

Promjenjiv vs. Nepromjenjivi objekti u Pythonu

Promjenjiv vs. Nepromjenjivi objekti u Pythonu

Za Python se kaže da je najnevjerojatniji jezik jer ga mnogi pojedinci odabiru kao svoj prvi jezik za programiranje zbog svoje elegancije i jednostavnosti. Zahvalni za svoju široku zajednicu, višak paketa i dosljednu sintaksu, iskusni profesionalci koriste i Python. Iako postoji jedna stvar koja čini da smeta i početnicima i nekim profesionalnim programerima - objektima iz Pythona.

Promjenjiv vs. Nepromjenjiv

Promjenjivo entiteti mogu mijenjati njihova stanje ili supstanca opisati nejednakost i nepromjenjiv entiteti ne mogu mijenjati svoje stanje ili suštinu. Dakle, kada se stvori objekt, poseban ID objekta se dodjeljuje. Za vrijeme izvođenja navedena je vrsta objekta koja se ne može kasnije ažurirati. Ugrađeni oblici poput varijabli int, float, bool, str, tuple i Unicode nepromjenjivi su. Objekti poput popisa, skupa, bajt polja i rječnika ugrađenih kategorija mogu se mijenjati.

Razumijevanje funkcije ID-a i tipa

Integrirani iskaznica() metoda sadrži id objekta kao samo cijeli broj. Taj se cijeli broj obično odnosi na položaj za pohranu predmeta. "je'operator međusobno povezuje identitete dvaju objekata. Integrirana funkcija, tip(), vraća vrstu predmeta. Usporedite dvije varijable 'x'i'g', koji ima istu vrijednost, koristeći operator jednakosti'x == y', izlazit će Pravi. Koristiti funkcija id (), usporedili smo adrese memorije iznijet će obje varijable Lažno jer su obje varijable različite i nalaze se na različitim memorijskim mjestima, iako su vrijednosti koje sadrže iste.

Napravi drugu varijablu 'z'koji upućuje na identični entitet koji'x'usmjerava na, pomoću operatora dodjele'='. Koristiti 'je'Operator, otkrili smo da oboje pokazuju isti objekt i imaju iste memorijske adrese.

Nepromjenjive vrste varijabli

Pogledajmo neke nepromjenjive tipove varijabli.

Integer DataType

Definirajmo varijablu 'x'imati vrijednost'10'. Ugrađeni metoda id () koristi se za otkrivanje mjesta 'x'u sjećanju i tip() koristi se za prepoznavanje njegove vrste. Kada pokušamo promijeniti vrijednost 'x', uspješno se mijenja, iako se adresa memorije vraća drugačije. To je zato što zapravo nismo promijenili vrijednost 'x', ali stvorili smo drugi objekt s istim imenom'x'i dodijelite mu drugu vrijednost. Povezali smo ime 'x'na novu vrijednost. Sad, kad god nazovete 'x'prikazat će novu vrijednost.

Vrsta podatka niza

Isto za vrstu podataka niza, ne možemo mijenjati postojeće varijabilna ali moramo stvoriti novi s istim imenom. Evo nas definirano varijabla niza 'x'i želim dodati'w'na nula indeksa. Izlazit će TipError, pokazujući da objekt niza ne podržava ažuriranje.

Vrsta podataka tipa Tuple

Bacite pogled na vrstu torte varijabilna, definirali smo a korijen s 4 vrijednosti. Koristili smo funkcija id () za izlaz njegove adrese. Kada želimo promijeniti njegovu vrijednost na 0 indeksa, daje TipError taj nabor ne podržava dodjeljivanje ili ažuriranje stavki.

Naprotiv, možete ažuriranje čitav tuple definirajući ga iz ogrepsti. Sad, kad god to provjerite, pronaći ćete novu vrijednost i novu adresu.

Tip plutajućeg podatka

Imamo varijablu tipa float 'x'. Koristiti funkcija id (), moramo saznati njegovu adresu. Kada želimo promijeniti njegovu vrijednost na indeks 1, daje TipError taj plutajući ne podržava izmjenu predmeta.

Suprotno tome, ažurirali smo plutati ponovnim definiranjem. Sad, kad god ga nazovemo, pronaći ćemo novu vrijednost i novu adresu.

Promjenjive vrste varijabli

Sada ćemo razmotriti neke promjenjive tipove varijabli.

Popis vrste podataka

Definirali smo a popis nazvan 'x'i dodajte mu neke vrijednosti. Dok trčanje, prikazat će vrijednosti popisa. Kada ti ažuriranje popis dodjeljivanjem novih vrijednosti indeks 0 i 2, to će uspješno učiniti.

Gore opisani primjer jednostavan je i osnovni primjer modifikacije. Da bismo provjerili promjenjivost na drugu razinu, pogledajmo isti primjer s malo promjena. Stvorili smo novo ime 'g'i vezali ga za isti objekt popisa. Kad smo provjerili je lix'je isto što i'g', vraća True. S druge strane, oboje 'x'i'g' imati isti memorija adrese.

Sada dodajte novu vrijednost a naziv popisa 'x' i provjerite ažurirani izlaz.

Sada, kada provjeravate popis ime 'y', prikazat će isti popis kao i za 'x'. To znači da kada ažuriramo isti popis objekata koji ima dva različita naziva 'x' i 'y'. Obje su iste i dijele iste memorijske adrese čak i nakon izmjene.

Tip podataka rječnika

Kako su rječnici najčešće korištene varijable u Pythonu, pogledajmo promjenljivost rječnika. Definirali smo rječnik pod nazivom 'diktat's tri ključa i njihovim vrijednostima. Kada ga isprintamo, prikazat će se sav njegov sadržaj. Možete ispisati svaku vrijednost rječnika zasebno, kao i njihovu upotrebu tipke umjesto indeksa.

Mi želimo promijeniti određenu vrijednost ažuriranjem tipka "Ime". Izvest će ažurirani rječnik. Ključevi rječnika su nepromjenjivi.

Definirajmo a popis i korijen odvojeno. Pobrinite se za to korijen mora imati a vrijednost vrste popisa u njemu i popis imaju vrijednost vrste torte u njemu posljedično.

A korijen ima popis na svom 0 indeksa pa kad se presvučete na 0 indeksa korijena, morate spomenuti indeks popisa na kojem želite promijeniti. Do promjene dolazi jer je popis nepromjenjiv.

Naprotiv, varijabla popisa ne može se ažurirati jer ima korijen na 0 indeks, koja je promjenjiva.

Zaključak

Vidjeli smo razlike u Pythonu između promjenjivog i nepromjenjivog. Morate razjasniti svoj um da se sve u Pythonu naziva objektom. Prvenstveno, razlika među objektima koji su promjenjivi vs. nepromjenjiv.

Srednja tipka miša ne radi u sustavu Windows 10
The srednja tipka miša pomaže vam u pomicanju kroz dugačke web stranice i zaslone s puno podataka. Ako se to zaustavi, na kraju ćete koristiti tipkovn...
Kako promijeniti lijevu i desnu tipku miša na računalu sa sustavom Windows 10
Sasvim je normalno da su svi uređaji računalnog miša ergonomski dizajnirani za dešnjake. Ali postoje dostupni uređaji za miš koji su posebno dizajnira...
Emulirajte klikove mišem lebdeći mišem bez klika u sustavu Windows 10
Korištenje miša ili tipkovnice u pogrešnom držanju pretjerane upotrebe može rezultirati mnogim zdravstvenim problemima, uključujući naprezanje, sindro...