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


Ovaj članak je uglavnom sastavljen da objasni važan operator u pythonu (“IDENTITY OPERATOR ”) i kako se razlikuje operator identiteta (je, nije ) iz operatora poređenja (==).

OPERATOR IDENTITETA

Operator identiteta (“je ” i “nije ”) koristi se za poređenje memorijske lokacije objekta. Kada se objekt kreira u memoriji, tom objektu se dodjeljuje jedinstvena memorijska adresa.

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

Kreirajte tri string objekta Ime, Name1 i Name2. Objekt string Ime i Name2 će imati istu vrijednost, a Name1 će imati različite vrijednosti.

Kada kreiramo ove objekte, ono što se dešava iza scene je da će taj objekat biti kreiran u memoriji i biće dostupan tokom životnog veka programa.

Sada možete koristiti operator poređenja “== ” da provjerite jesu li obje vrijednosti objekta iste. Izlaz operatora poređenja će biti Boolean (Tačno ili False) vrijednost.

Sada kada ste uporedili dvije vrijednosti da biste odredili jednakost, pogledajmo kako funkcionira operator identiteta.

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

Da bi bilo jednostavnije, zamislite ovo kao jedinstveni državni ID ili Emp ID koji vam je dodijeljen, isto tako jedinstvena cjelobrojna vrijednost se dodjeljuje svakom objektu.

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

Kada uporedim Ime i Ime1 ili Name2 koristeći operator identiteta, ono što radi na pozadini je da jednostavno pokreće “id(Name ) == id(ime2) ”. Pošto id(Name) i id(Name2) dijele istu memorijsku lokaciju, vraća True.

Sada dolazi zanimljivi dio. Pogledajte naš prethodni primjer gdje i Ime i Name1 imaju identične vrijednosti i vraćaju istu cjelobrojnu vrijednost kada pokrenemo funkciju id(). Zašto mislite da objekti “Name_new” i “Name_le” nisu identični iako dijele iste vrijednosti sa snimka ekrana ispod?

To je zbog implementacije python dizajna. Kada kreirate cjelobrojni objekt u rasponu (-5,256) i nizove objekte veće ili jednake 20 znakova, umjesto da kreirate različite objekte u memoriji za istu vrijednost, ovi objekti djeluje kao pokazivač na već kreirane objekte.

Donji slikovni prikaz će vam dati jasnu predstavu o tome šta smo do sada vidjeli u ovom članku.

Sažetak

U ovom članku smo vidjeli šta je operator identiteta. Kako se koristi operator poređenja i operator identiteta, dizajn implementacije o tome kako se objekt kreira u memoriji.