Naučite se operaterja identitete Python in razlike med operaterji "==" in "IS"


Ta članek je v glavnem pripravljen, da razloži pomemben operater v pythonu (\ "IDENTITY OPERATOR") in kako se operater identitete razlikuje (je, ni) od operatorja primerjave (==) .

OPERATER IDENTITETE

Operator identitete (\"je" in \"ni" ) se uporablja za primerjavo lokacije pomnilnika predmeta. Ko se objekt ustvari v pomnilniku, se temu predmetu dodeli edinstven pomnilniški naslov.

  • ‘==’ primerja, če sta obe vrednosti objekta enaki ali ne.
  • ‘is’ primerja, če oba predmeta pripadata isti pomnilniški lokaciji.

Ustvarite tri nizne predmete Ime, Ime1 in Ime2. Nizni objekt Name in Name2 bo imel enako vrednost, Name1 pa bo imel različne vrednosti.

Ko ustvarimo te predmete, se zgodi, da se zakulisje ustvari v spominu in bo na voljo v življenjski dobi programa.

Zdaj lahko z operatorjem primerjave \"==” preverite, ali sta obe vrednosti objekta enaki. Rezultat operaterja primerjave bo logična (True ali False) vrednost.

Zdaj, ko ste primerjali dve vrednosti, da bi ugotovili enakost, si oglejmo, kako deluje identifikator.

Vgrajena funkcija Id() se uporablja za pridobitev\"identitete" predmeta. Celo število, ki bo za enoto edinstveno in konstantno v času njegove življenjske dobe.

Če želite to poenostaviti, mislite, da je to edinstveni državni ID ali ID Emp, ki vam je dodeljen, prav tako pa je za vsak objekt dodeljena enolična celoštevilčna vrednost.

Zdaj lahko primerjate 2 sklici na objekte z operaterjem \"is" .

Ko primerjam Name in Name1 ali Name2 z uporabo identifikacijskega operaterja, tisto, kar počne na zaledju, preprosto zažene \"id (Name) == id (Name2)" . Ker id (Name) in id (Name2) imata isto lokacijo pomnilnika, vrne True.

Zdaj prihaja zanimiv del. Oglejte si naš prejšnji primer, ko imata Ime in Ime1 enake vrednosti in vrneta enako celoštevilčno vrednost, ko zaženemo funkcijo id() . Zakaj mislite, da objekta\"Name_new" in\"Name_le" nista enaka, čeprav imata enake vrednosti iz spodnjega posnetka zaslona?

To je zaradi izvedbe zasnove python. Ko ustvarite celoštevilski objekt v obsegu (-5.256) in predmete v nizu, ki so večji ali enaki 20 znakov, namesto da ustvarjajo različne predmete v pomnilniku za isto vrednost, ti predmeti delujejo kot kazalec na že ustvarjene predmete.

Spodnja slikovna predstavitev vam bo dala jasno predstavo o tem, kar smo doslej videli v tem članku.

V tem članku smo videli, kaj je identitetni operater. Kako se uporablja operater primerjave in operater identitete, izvedba zasnove, kako je predmet ustvarjen v pomnilniku.