Python

Muterbar vs. Uforanderlige objekter i Python

Muterbar vs. Uforanderlige objekter i Python

Python sies å være det mest fantastiske språket, ettersom mange individer velger det som førstespråk for programmering for sin eleganse og enkelhet. Takknemlighet for det brede samfunnet, overskudd av pakker og konsistent syntaks, erfarne fagfolk bruker også Python. Selv om det er en ting som ser ut til å irritere både nybegynnere og noen profesjonelle utviklere - objekter fra Python.

Muterbar vs. Uforanderlig

Muterbar enheter kan endre deres tilstand eller stoff for å beskrive ulikheten, og uforanderlig enheter kan ikke endre sin tilstand eller substans. Så når et objekt blir opprettet, en spesiell objekt-ID er tildelt. På kjøretid er typen type spesifisert, og den kan ikke oppdateres senere. Innebygde former som int, float, bool, str, tuple og Unicode variabler er uforanderlige. Objekter som liste, sett, byte-matriser og ordliste over innebygde kategorier er foranderlige.

Forstå ID og type funksjon

Det integrerte id () metoden inneholder et objekts id som bare et heltall. Det heltallet refererer normalt til lagringsposisjonen til objektet. The 'eroperatøren forholder identiteten til to objekter til hverandre. Den integrerte funksjonen, type(), returnerer typen objekt. Sammenlign to variabler 'x'og'y', med samme verdi, ved bruk av likhetsoperatør'x == y', vil den sende ut ekte. Bruker id () -funksjon, vi har sammenlignet minneadresser av begge variablene, vil den sende ut Falsk fordi begge variablene er forskjellige og ligger på forskjellige minnesteder, selv om verdiene de inneholder er de samme.

Lag en annen variabel 'z'som peker på den identiske enheten som'x'dirigerer til, bruker oppdragsoperatør'='. Bruker 'er'operatør har vi funnet ut at de begge peker på det samme objektet og har de samme minneadressene.

Uforanderlige variabeltyper

La oss se på noen uforanderlige variabeltyper.

Heltall datatype

La oss definere en variabel 'x'har en verdi'10'. En innebygd id () metode brukes til å finne ut plasseringen til 'x'til minne og type() brukes til å identifisere typen. Når vi prøver å endre verdien av 'x', den er vellykket endret, selv om minneadressen returnerer annerledes. Det er fordi vi faktisk ikke har endret verdien av 'x', men vi har opprettet et annet objekt med samme navn'x'og tildel det en annen verdi. Vi har bundet navnet 'x'til den nye verdien. Nå, når du ringer 'x'det vil gi ut den nye verdien.

Strengdatatype

Samme for strengdatatypen, vi kan ikke endre den eksisterende variabel men vi må skape en ny med samme navn. Her har vi definert en strengvariabel 'x'og vil legge til'w'til nullindeksene. Det vil sende ut Type Feil, viser at strengobjektet ikke støtter oppdatering.

Tuple datatype

Få et glimt av en tupeltype variabel, vi har definert a tuple med 4 verdier. Vi har brukt id () -funksjon for å sende adressen. Når vi vil endre verdien på 0 indekser, det gir Type Feil den tupelen støtter ikke varetildeling eller oppdatering.

Tvert imot, det kan du Oppdater hele tuplen ved å definere den fra ripe. Nå, når du sjekker det, vil du finne en ny verdi og en ny adresse.

Flyt datatype

Vi har en flytestørrelsesvariabel 'x'. Bruker id () -funksjon, vi må finne ut adressen. Når vi vil endre verdien på indeks 1, det gir Type Feil som flyter ikke støtter modifikasjon av varer.

Omvendt har vi oppdatert flyte ved å definere det igjen. Nå, når vi kaller det, vil vi finne en ny verdi og en ny adresse.

Variable variabeltyper

Nå skal vi se på noen mutable variabeltyper.

Liste DataType

Vi har definert en liste heter 'x'og legg til noen verdier i den. Samtidig som løpe, det vil vise listeverdier. Når du Oppdater listen ved å tildele nye verdier til indeks 0 og 2, det vil lykkes.

Det ovenfor beskrevne eksemplet er et enkelt og grunnleggende eksempel på modifikasjon. For å sjekke mutabilitet til et annet nivå, la oss ta en titt på det samme eksemplet med liten endring. Vi har opprettet et nytt navn 'y'og bundet den til det samme listeobjektet. Da vi sjekket omx' er det samme som 'y', det returnerer sant. På den annen side, begge deler 'x'og'y' har samme hukommelse adresser.

Legg nå til en ny verdi til a listenavn 'x' og sjekk oppdatert utdata.

Nå, når du ser etter liste navn 'y', den viser den samme listen som den vises for 'x'. Det betyr at når vi oppdaterer den samme objektlisten, som har to forskjellige navn 'x' og 'y'. Begge er like og deler de samme minneadressene selv etter endringen.

Ordbok DataType

Ettersom ordbøker er ofte brukte variabler i Python, la oss ta en titt på ordbokers mutabilitet. Vi har definert en ordbok som heter 'diktere'med tre nøkler og deres verdier. Når vi skriver den ut, vil den vise alt innholdet i den. Du kan skrive ut hver ordbokverdi separat, samt bruke deres nøklene i stedet for indekser.

Vi vil endring den spesielle verdien ved å oppdatere nøkkel 'Navn'. Den vil sende den oppdaterte ordboken. Ordbokstaster er uforanderlige.

La oss definere en liste og tuple hver for seg. Sørge for at tuple må ha en liste type verdi i den og en liste har en tuple type verdi i det følgelig.

EN tuple har en liste på sin 0 indekser så når du bytter på 0 indekser av en tuple, må du nevne indeks av en liste der du vil endre. Endring skjer fordi listen er uforanderlig.

Tvert imot kan ikke listevariabelen oppdateres fordi den har en tuple0 indeks, som er foranderlig.

Konklusjon

Vi har sett variasjoner i Python mellom foranderlig og uforanderlig. Du må gjøre deg klar over at alt i Python blir referert til som et objekt. Primært er skillet mellom gjenstander som kan endres vs. uforanderlig.

Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...