Python

Premenlivý vs. Nezmeniteľné objekty v Pythone

Premenlivý vs. Nezmeniteľné objekty v Pythone

O Pythone sa hovorí, že je najúžasnejším jazykom, pretože mnoho ľudí si ho pre svoju eleganciu a jednoduchosť vyberá ako svoj prvý jazyk programovania. Vďačnosť svojej širokej komunite, prebytku balíkov a dôslednej syntaxe používajú skúsení odborníci aj v jazyku Python. Aj keď sa zdá, že otravuje začiatočníkov aj niektorých profesionálnych vývojárov - objekty z Pythonu, jedna vec.

Premenlivý vs. Nezmeniteľné

Premenlivé subjekty môžu pozmeniť ich štátu alebo látky - opísať rozdiel a - nemenný subjekty nemôžu meniť svoj stav alebo podstatu. Takže keď je objekt vytvorený, špeciálny ID objektu je pridelený. Počas behu je zadaný druh objektu a nemožno ho neskôr aktualizovať. Vstavané formuláre ako int, float, bool, str, n-tice a premenné Unicode sú nemenné. Objekty ako zoznam, množina, bajtové polia a slovník vstavaných kategórií sú premenlivé.

Pochopte funkciu ID a typ

Integrovaný id () metóda obsahuje ID objektu ako celé číslo. Toto celé číslo sa obvykle týka úložnej polohy objektu. „je„operátor navzájom spája totožnosť dvoch objektov. Integrovaná funkcia, typ (), vráti druh objektu. Porovnajte dve premenné 'X„a“r„, ktorý má rovnakú hodnotu, používa operátor rovnosti“x == r', bude mať výstup Pravdaže. Pomocou funkcia id (), porovnali sme adresy pamäte z oboch premenných vygeneruje Falošné pretože obe premenné sú odlišné a nachádzajú sa na rôznych miestach v pamäti, aj keď hodnoty, ktoré obsahujú, sú rovnaké.

Vytvoriť ďalšiu premennú 'z„ktorý poukazuje na totožný subjekt, ktorý“X„smeruje do pomocou operátora priradenia“=„. Pomocou 'je'operátor sme zistili, že obaja ukazujú na ten istý objekt a majú rovnaké adresy v pamäti.

Nezmeniteľné typy premenných

Pozrime sa na niekoľko nemenných typov premenných.

Celé číslo DataType

Definujme premennú 'X„mať hodnotu“10„. Zabudovaný metóda id () sa používa na zistenie polohyX„v pamäti a typ () sa používa na identifikáciu jeho typu. Keď sa pokúsime zmeniť hodnotu „X', je úspešne zmenený, aj keď sa adresa pamäte vracia inak. Je to preto, že sme v skutočnosti nezmenili hodnotu „X„, ale vytvorili sme ďalší objekt s rovnakým názvom“X„a priradiť mu inú hodnotu. Spojili sme meno 'X„na novú hodnotu. Teraz, kedykoľvek zavolášX'vygeneruje novú hodnotu.

Reťazec DataType

Rovnaké pre dátový typ reťazca, nemôžeme upraviť existujúce premenná ale musíme vytvoriť nový s rovnakým názvom. Tu máme definované reťazcová premenná 'X„a chcete pridať“w„na svoje nulové indexy. Bude sa vysielať TypeError, ukazuje, že objekt reťazca nepodporuje aktualizáciu.

Tuple DataType

Letmý pohľad na typ n-tice premenná, definovali sme a násobný so 4 hodnotami. Použili sme funkcia id () na výstup jeho adresu. Keď chceme zmeniť jeho hodnotu na 0 indexov, dáva TypeError táto n-tica nepodporuje priradenie alebo aktualizáciu položky.

Naopak, môžete aktualizovať celú n-ticu definovaním z škrabanec. Teraz, kedykoľvek to skontrolujete, nájdete novú hodnotu a novú adresu.

Float DataType

Máme premennú typu float 'X„. Pomocou funkcia id (), musíme zistiť jeho adresu. Keď chceme zmeniť jeho hodnotu na index 1, dáva TypeError tento plavák nepodporuje úpravy položiek.

Naopak, aktualizovali sme plavák jej opätovným definovaním. Teraz, kedykoľvek to nazveme, nájdeme novú hodnotu a novú adresu.

Premenlivé typy premenných

Teraz sa pozrieme na niektoré typy premenlivých premenných.

Zoznam dátových typov

Definovali sme a zoznam pomenovaný 'X'a pridať k tomu nejaké hodnoty. Zatiaľ čo bežať, zobrazí hodnoty zoznamu. Keď ty aktualizovať zoznamu priradením nových hodnôt index 0 a 2, úspešne to urobí.

Vyššie opísaný príklad je jednoduchým a základným príkladom úpravy. Ak chceme skontrolovať premenlivosť na inú úroveň, pozrime sa na ten istý príklad s malými zmenami. Vytvorili sme nové meno 'ra naviazal ho na ten istý objekt zoznamu. Keď sme skontrolovali, čiX' je to isté ako 'r', vráti True. Na druhej strane obidve “X„a“r' majú to isté Pamäť adresy.

Teraz pripojte novú hodnotu k a názov zoznamu 'x' a skontrolujte aktualizovaný výstup.

Teraz, keď hľadáte zoznam meno „y“, zobrazí rovnaký zoznam ako pre 'x'. To znamená, že keď aktualizujeme ten istý zoznam objektov, ktorý má dva rôzne názvy „x“ a „y“. Oba sú rovnaké a zdieľajú rovnaké adresy pamäte aj po úprave.

Slovník DataType

Pretože slovníky sú v Pythone bežne používanými premennými, pozrime sa na premenlivosť slovníkov. Definovali sme slovník s názvomdiktát„s tromi kľúčmi a ich hodnotami. Keď to vytlačíme, zobrazí sa všetok ich obsah. Každú hodnotu slovníka môžete vytlačiť osobitne, ako aj použiť jeho hodnotu kľúče namiesto indexov.

Chceme zmeniť konkrétnu hodnotu aktualizáciou kláves 'Meno'. Bude vydávať aktualizovaný slovník. Kľúče slovníka sú nemenné.

Definujme a zoznam a násobný oddelene. Uistite sa, že násobný musí mať a hodnota typu zoznamu v ňom a zoznam majú hodnota typu n-tice v tom následne.

A násobnýzoznam na jeho 0 indexov takže keď sa zmeníte na 0 indexov n-tice, musíte spomenúť index zoznamu, ktorý chcete zmeniť. Zmena nastáva, pretože zoznam je nemenný.

Naopak, premennú zoznamu nie je možné aktualizovať, pretože má znak násobný na 0 index, ktorý je premenlivý.

Záver

V Pythone sme videli rozdiely medzi premenlivými a nemennými. Musíte si ujasniť, že všetko v Pythone sa označuje ako objekt. Primárne platí, že rozdiel medzi objektmi, ktoré sú premenlivé vs. nemenný.

Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...
WinMouse vám umožňuje prispôsobiť a vylepšiť pohyb ukazovateľa myši na počítači so systémom Windows
Ak chcete vylepšiť predvolené funkcie kurzora myši, použite freeware WinMouse. Pridáva ďalšie funkcie, ktoré vám pomôžu vyťažiť zo svojej skromnej myš...