Krajta

Proměnlivý vs. Neměnné objekty v Pythonu

Proměnlivý vs. Neměnné objekty v Pythonu

O Pythonu se říká, že je nejúžasnějším jazykem, protože mnoho lidí si jej vybralo jako svůj první jazyk pro programování kvůli své eleganci a jednoduchosti. Vděčnost za širokou komunitu, nadbytek balíčků a konzistentní syntaxi, zkušení profesionálové také používají Python. I když se zdá, že otravuje začátečníky i některé profesionální vývojové objekty z Pythonu jedna věc.

Proměnlivý vs. Neměnný

Proměnlivý subjekty mohou změnit jejich stát nebo látka popsat rozdíl a neměnný entity nemohou změnit svůj stav nebo podstatu. Takže když je vytvořen objekt, speciální ID objektu je přiděleno. Za běhu je zadán druh objektu a nelze jej později aktualizovat. Vestavěné formuláře, jako jsou proměnné int, float, bool, str, n-tice a Unicode, jsou neměnné. Objekty jako seznam, množina, bajtová pole a slovník předdefinovaných kategorií jsou proměnlivé.

Vysvětlení funkce ID a typu

Integrovaný id () metoda obsahuje ID objektu jako celé číslo. Toto celé číslo obvykle odkazuje na pozici úložiště objektu. 'je„operátor spojuje identity dvou objektů navzájem. Integrovaná funkce, typ(), vrací druh objektu. Porovnat dvě proměnnéX' a 'y', se stejnou hodnotou pomocí operátoru rovnosti'x == y', bude mít výstup Skutečný. Za použití id () funkce, jsme porovnali adresy paměti z obou proměnných bude výstup Nepravdivé protože obě proměnné jsou různé a nacházejí se na různých místech paměti, i když hodnoty, které obsahují, jsou stejné.

Vytvořit další proměnnou 'z„který ukazuje na stejnou entitu, která“X'is directing to, using assignment operator'=''. Za použití 'je'operátor jsme zjistili, že oba, ukazují na stejný objekt a mají stejné adresy paměti.

Neměnné typy proměnných

Pojďme se podívat na některé neměnné typy proměnných.

Celé číslo DataType

Pojďme definovat proměnnou 'X‚mít hodnotu '10''. Integrovaný metoda id () slouží k zjištění polohy 'X'v paměti a typ() se používá k identifikaci jeho typu. Když se pokusíme změnit hodnotu 'X', je úspěšně změněn, i když se adresa paměti vrací jinak. Je to proto, že jsme ve skutečnosti nezměnili hodnotu 'X„, ale vytvořili jsme další objekt se stejným názvem“X'a přiřadit mu jinou hodnotu. Spojili jsme jméno 'X'na novou hodnotu. Nyní, kdykoli zavoláteX'vygeneruje novou hodnotu.

Řetězec DataType

Stejné pro datový typ řetězce, nemůžeme upravit existující proměnná ale musíme vytvořit nový se stejným názvem. Tady máme definované řetězcová proměnná 'X„a chcete přidat“w„na své nulové indexy. Bude výstup TypeError, ukazuje, že objekt řetězce nepodporuje aktualizaci.

Tuple DataType

Zahlédněte typ n-tice proměnná, definovali jsme a n-tice se 4 hodnotami. Použili jsme id () funkce k odeslání jeho adresy. Když chceme změnit jeho hodnotu na 0 indexů, dává TypeError tato n-tice nepodporuje přiřazování nebo aktualizaci položek.

Naopak můžete Aktualizace celou n-tici definováním z poškrábat. Nyní, kdykoli to zkontrolujete, najdete novou hodnotu a novou adresu.

Float DataType

Máme proměnnou typu float 'X''. Za použití id () funkce, musíme zjistit jeho adresu. Když chceme změnit jeho hodnotu na index 1, dává TypeError tento float nepodporuje úpravy položek.

Naopak jsme aktualizovali plovák tím, že to znovu definujeme. Nyní, kdykoli to zavoláme, najdeme novou hodnotu a novou adresu.

Proměnlivé typy proměnných

Nyní se podíváme na některé typy proměnných proměnných.

Seznam DataType

Definovali jsme a seznam pojmenovaný 'X'a přidejte k tomu nějaké hodnoty. Zatímco běh, zobrazí hodnoty seznamu. Když vás Aktualizace seznamu přiřazením nových hodnot index 0 a 2, úspěšně to udělá.

Výše popsaný příklad je jednoduchým a základním příkladem modifikace. Chcete-li zkontrolovat proměnlivost na jinou úroveň, podívejme se na stejný příklad s malými změnami. Vytvořili jsme nový název 'y'a svázal jej se stejným objektem seznamu. Když jsme zkontrolovali, zdaX' je stejné jako 'y', vrátí True. Na druhou stranu obaX' a 'y'mít stejný Paměť adresy.

Nyní přidejte novou hodnotu k a název seznamu 'x' a zkontrolujte aktualizovaný výstup.

Nyní, když zkontrolujete seznam jméno 'y', zobrazí stejný seznam jako pro 'x'. To znamená, že když aktualizujeme stejný seznam objektů, který má dva různé názvy „x“ a „y“. Oba jsou stejné a sdílejí stejné adresy paměti i po úpravě.

Slovník DataType

Protože slovníky jsou v Pythonu běžně používanými proměnnými, pojďme se podívat na proměnlivost slovníků. Definovali jsme slovník s názvem 'diktát„se třemi klíči a jejich hodnotami. Když to vytiskneme, zobrazí se veškerý jeho obsah. Každou hodnotu slovníku můžete vytisknout samostatně a také použít její hodnotu klíče místo indexů.

Chceme změna konkrétní hodnotu aktualizací klíč 'Jméno'. Vydá aktualizovaný slovník. Klíče slovníku jsou neměnné.

Pojďme definovat a seznam a n-tice odděleně. Ujistit se, že n-tice musí mít hodnota typu seznamu v něm a seznam mají hodnota typu n-tice v tom následně.

A n-ticeseznam na jeho 0 indexů takže když se změníte na 0 indexů n-tice, musíte zmínit index seznamu, který chcete změnit. Ke změně dochází, protože seznam je neměnný.

Naopak proměnnou seznamu nelze aktualizovat, protože má a n-tice na 0 index, což je proměnlivé.

Závěr

V Pythonu jsme viděli rozdíly mezi proměnlivými a neměnnými. Musíte si ujasnit, že všechno v Pythonu je označováno jako objekt. Rozdíl mezi objekty, které jsou proměnlivé vs. neměnný.

Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...
Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...
Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...