Piton

Változtatható vs. Változhatatlan objektumok a Pythonban

Változtatható vs. Változhatatlan objektumok a Pythonban

Állítólag a Python a legcsodálatosabb nyelv, mivel sok ember eleganciája és egyszerűsége miatt első programozási nyelvként választja. Hála a széles közösségért, a csomagok feleslege és a következetes szintaxis miatt a tapasztalt szakemberek a Pythont is használják. Bár egy dolog látszólag bosszantja mind a kezdőket, mind a professzionális fejlesztőket - a Python objektumai.

Változtatható vs. Változhatatlan

Változékony entitások képesek változtat azok állapot vagy anyag a különbségek leírására, és változhatatlan az entitások nem változtathatják meg állapotukat vagy tartalmukat. Tehát amikor egy objektum létrejön, egy különleges objektum azonosítója kiosztásra kerül. Futás közben megadja az objektum fajtáját, és később nem frissíthető. A beépített formák, például az int, a float, a bool, az str, a tuple és az Unicode változók változhatatlanok. Az olyan objektumok, mint a beépített kategóriák listája, halmaza, bájt tömbjei és szótára, módosíthatók.

Ismerje meg az azonosítót és a típusfunkciót

Az integrált id () A metódus az objektum azonosítóját egész számként tartalmazza. Ez az egész szám általában az objektum tárolási helyzetére utal. A 'van'az operátor két objektum azonosságát kapcsolja össze egymással. Az integrált funkció, típus(), egy objektum fajtáját adja vissza. Két változó összehasonlítása 'x"és"y", azonos értékkel, egyenlőségi operátor használatával"x == y', akkor ki fog adni Igaz. Használni a id () függvény, összehasonlítottuk a memória címek mindkét változó közül ki fog adni Hamis mert mindkét változó különbözik és különböző memóriahelyeken található, bár az általuk tartalmazott értékek ugyanazok.

Készítsen másik változót 'z"amely arra az azonos entitásra mutat, amely"x"a hozzárendelés operátorhoz irányít"=". Használni a 'van'operátor azt tapasztaltuk, hogy mindkettő ugyanarra az objektumra mutat, és ugyanazok a memória címek.

Változhatatlan változótípusok

Nézzünk meg néhány változhatatlan változótípust.

Egész számadattípus

Definiáljunk egy változót 'x„értékkel bír”10". Beépített id () metódus használják a 'helyének megismerésérex'emlékezetében és típus() típusának azonosítására szolgál. Amikor megpróbáljuk megváltoztatni a 'x', sikeresen megváltozott, bár a memória címe másképp tér vissza. Ez azért van, mert valójában nem változtattuk meg ax', de létrehoztunk egy másik, azonos nevű objektumot'x"és adjon hozzá egy másik értéket. Összekötöttük a nevet 'xaz új értékre. Most, amikor hívszx'az új értéket adja ki.

String DataType

A karakterlánc adattípusa megegyezik, a meglévőt nem tudjuk módosítani változó de muszáj teremt egy új, azonos nevű. Itt van meghatározott string változó 'x"és hozzá akarja adni"wnullára. Kimenetet fog adni TypeError, megmutatja, hogy a string objektum nem támogatja a frissítést.

Tuple DataType

Vessen egy pillantást egy kettős típusra változó, meghatároztuk a tuple 4 értékkel. Használtuk a id () függvény hogy kiadja a címét. Amikor meg akarjuk változtatni az értékét a 0 index, ez adja a TypeError az a tuple nem támogatja az elem hozzárendelését vagy frissítését.

Ellenkezőleg, lehet frissítés az egész duplát úgy definiálva, hogy karcolás. Most, amikor ellenőrzi, új értéket és új címet talál.

Float DataType

Van egy úszó típusú változónk 'x". Használni a id () függvény, meg kell találnunk a címét. Amikor meg akarjuk változtatni az értékét a index 1, ez adja a TypeError ez az úszó nem támogatja az elem módosítását.

Ezzel szemben frissítettük a úszó újra meghatározva. Most, amikor csak hívjuk, új értéket és új címet találunk.

Változtatható változó típusok

Most néhány mutálható változót vizsgálunk meg.

Sorolja fel a DataType elemet

Meghatároztuk a lista nevezett 'x'és adjon hozzá néhány értéket. Míg fuss, a listaértékeket jeleníti meg. Amikor te frissítés új értékek hozzárendelésével a listához index 0 és 2, ezt sikeresen meg fogja tenni.

A fent leírt példa a módosítás egyszerű és alapvető példája. A mutabilitás más szintre történő ellenőrzéséhez nézzük meg ugyanezt a példát, kevés változtatással. Új nevet hoztunk létre 'y'és ugyanahhoz a listaobjektumhoz köti. Amikor megnéztük, hogyx' ugyanaz mint 'y', akkor True értéket ad vissza. Másrészt mindkettőx"és"y' megvan a azonos memória címek.

Most csatoljon egy új értéket a lista neve 'x' és ellenőrizze a frissített kimenetet.

Most, amikor ellenőrzi a listát név 'y', ugyanazt a listát jeleníti meg, mint az 'x' esetében. Ez azt jelenti, hogy amikor ugyanazt az objektumlistát frissítjük, amelynek két különböző neve van: „x” és „y”. Mindkettő ugyanaz, és ugyanazok a memória címek vannak a módosítás után is.

Szótár DataType

Mivel a szótárak a Pythonban általánosan használt változók, nézzük meg a szótárak mutabilitását. Meghatároztunk egy szótárt, amelynek neve:diktálja'három kulccsal és azok értékével. Amikor kinyomtatjuk, megjeleníti annak minden tartalmát. Az egyes szótárértékeket külön-külön is kinyomtathatja, valamint felhasználhatja azokat kulcsok indexek helyett.

Szeretnénk változás az adott értéket a "Név" kulcs. Kiadja a frissített szótárt. A szótár kulcsai megváltoztathatatlanok.

Határozzuk meg a lista és tuple külön. Győződjön meg arról, hogy tuple kell a listatípus értéke benne és egy listában van egy tuple type érték benne következésképpen.

A tuple van egy lista annak 0 index tehát amikor megváltozik a 0 index egy duplánál meg kell említenie a index listát, ahol módosítani kíván. A változás azért következik be, mert a lista változhatatlan.

Éppen ellenkezőleg, a listaváltozó nem frissíthető, mert rendelkezik egy kettős tovább 0 index, ami változtatható.

Következtetés

Láttunk variációkat a Pythonban a változtatható és a megváltoztathatatlanok között. Világossá kell tennie az elméjét, hogy a Pythonban mindent objektumnak neveznek. Elsősorban a mutálható objektumok közötti különbségtétel vs. változhatatlan.

A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...
A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...
5 legjobb arcade játék Linuxhoz
Manapság a számítógépek komoly gépek, amelyeket játékra használnak. Ha nem sikerül megszerezni az új magas pontszámot, akkor tudni fogja, mire gondolo...