Naučite Python operator identiteta i razliku između operatora "==" i "IS".


Ovaj je članak uglavnom pripremljen da objasni važan operator u pythonu (“IDENTITET OPERATOR”) i kako se operator identiteta razlikuje (je, nije ) iz operatora usporedbe (==).

IDENTITET OPERATOR

Operator identiteta (“is” i “is not”) koristi se za usporedbu memorijske lokacije objekta. Kada se objekt kreira u memoriji, tom se objektu dodjeljuje jedinstvena memorijska adresa.

  • ‘==’ uspoređuje jesu li obje vrijednosti objekta identične ili ne.
  • 'is' uspoređuje pripadaju li oba objekta istoj memorijskoj lokaciji.

Napravite tri string objekta Name, Name1 i Name2. String objekt Name i Name2 sadržavat će istu vrijednost, a Name1 različite vrijednosti.

Kada kreiramo te objekte, ono što se događa iza scene je da će se taj objekt kreirati u memoriji i bit će dostupan tijekom životnog vijeka programa.

Sada možete koristiti operator usporedbe “== ” da provjerite jesu li obje vrijednosti objekta iste. Izlaz operatora usporedbe bit će Booleova (True ili False) vrijednost.

Sada kada ste usporedili dvije vrijednosti za utvrđivanje jednakosti, pogledajmo kako funkcionira operator identiteta.

Ugrađena funkcija Id() koristi se za dobivanje “identiteta” objekta. Cijeli broj koji će biti jedinstven i konstantan za objekt tijekom njegovog vijeka trajanja.

Da pojednostavimo, zamislite ovo kao jedinstveni ID ili Emp ID koji vam je dodijeljen, isto tako jedinstvena vrijednost cijelog broja dodijeljena je svakom objektu.

Sada možete usporediti 2 reference objekta koristeći “is” operator.

Kada usporedim Name i Name1 ili Name2 koristeći operator identiteta ono što on radi u pozadini je da jednostavno izvodi “id(Name ) == id(Ime2) ”. Budući da id(Name) i id(Name2) dijele istu memorijsku lokaciju, vraća True.

Sada dolazi zanimljiv dio. Pogledajte naš prethodni primjer gdje Name i Name1 imaju identične vrijednosti i vraćaju istu vrijednost cijelog broja kada pokrenemo funkciju id(). Zašto mislite da objekt “Name_new” i “Name_le” nije identičan iako dijele iste vrijednosti sa snimka zaslona u nastavku?

To je zbog implementacije python dizajna. Kada stvorite cjelobrojni objekt u rasponu (-5,256) i stringujete objekte veće od ili jednake 20 znakova, umjesto stvaranja različitih objekata u memoriji za istu vrijednost, ovi objekti djelovati kao pokazivač na već stvorene objekte.

Donji slikovni prikaz dat će vam jasnu predodžbu o onome što smo do sada vidjeli u ovom članku.

Sažetak

U ovom smo članku vidjeli što je operator identiteta. Kako se koristi operator usporedbe i operator identiteta, implementacija dizajna o tome kako se objekt stvara u memoriji.