Denne artikkelen er hovedsakelig kuratert for å forklare en viktig operatør i python ("IDENTITETSOPERATØR”) Og hvordan en identitetsoperatør er forskjellig (er, er ikke) fra sammenligningsoperatør (==)
.
Identitetsoperatør ("er"
og "er ikke"
) brukes til å sammenligne objektets minneplassering. Når et objekt blir opprettet i minnet, tildeles det en unik minneadresse til objektet.
‘==’
sammenligner om begge objektverdiene er identiske eller ikke.'er'
sammenligner hvis begge objektene tilhører samme minnested.Lag tre strengobjekter Navn, Navn 1, og Navn 2. Stringobjekt Navn og Navn 2 vil ha samme verdi og Navn 1 vil ha forskjellige verdier.
Når vi lager disse objektene, er det som skjer bak scenen, at objektet vil bli opprettet i minnet og være tilgjengelig i løpet av programmets levetid.
Nå kan du bruke en sammenligningsoperator “==”
for å kontrollere om begge objektverdiene er de samme. Utgangen til sammenligningsoperatoren vil være en boolsk (ekte eller Falsk) verdi.
Nå som du har sammenlignet to verdier for å bestemme likestilling, la oss ta en titt på hvordan identitetsoperatøren fungerer.
Den innebygde Id ()
en funksjon brukes for å få "identitet"Av et objekt. Et heltall som vil være unikt og konstant for objektet i løpet av dets levetid.
For å gjøre det enkelt synes dette som en unik regjering ID eller Emp ID tildelt deg, blir det på samme måte tildelt en unik heltallsverdi for hvert objekt.
Nå kan du sammenligne 2 objektreferanser med "er"
operatør.
Når jeg sammenligner Navn og Navn 1 eller Navn 2 ved å bruke identitetsoperatøren hva den gjør på backend er at den bare kjører "Id (navn) == id (navn2)"
. Siden id (navn) og id (navn 2) begge deler det samme minnestedet, returnerer det ekte.
Nå kommer den interessante delen. Se på vårt forrige eksempel der begge Navn og Navn 1 har identiske verdier og returnerer den samme heltallverdien når vi kjører id ()
funksjon. Hvorfor tror du "Navn_ny"Og"Name_le”Objektet er ikke identisk, selv om de deler de samme verdiene fra skjermbildet nedenfor?
Dette er på grunn av implementeringen av python -design. Når du oppretter et heltallobjekt i området (-5,256) og strengobjekter større enn eller lik 20 tegn, i stedet for å lage forskjellige objekter i minnet for samme verdi, fungerer disse objektene som en peker til allerede opprettede objekter.
Nedenfor viser billedrepresentasjonen deg en klar ide om hva vi har sett så langt i denne artikkelen.
I denne artikkelen har vi sett hva som er en identitetsoperatør. Hvordan sammenligningsoperatør og identitetsoperatør brukes, utforme implementering av hvordan et objekt blir opprettet i minnet.