Opi Python Identity Operator ja ero "==" ja "IS" Operator


Tämä artikkeli on pääasiassa laadittu selittämään tärkeä python-operaattori (“TUNNISTUSOPERAATTORI”) ja miten identiteettioperaattori eroaa (on, ei ole) vertailuoperaattorista (==) .

TUNNISTETOIMINTA

Identiteettioperaattoria ( “on” ja “ei” ) käytetään objektin muistipaikan vertaamiseen. Kun objekti luodaan muistiin, yksilöllinen muistiosoite osoitetaan tälle objektille.

  • ‘==’ vertaa, jos molemmat objektiarvot ovat identtisiä vai eivät
  • ’on’ vertaa, jos molemmat objektit kuuluvat samaan muistipaikkaan.

Luo kolme merkkijono-objektia Nimi, Nimi1 ja Nimi2. Merkkijono-objektin nimi ja nimi2 pitävät saman arvon ja nimi1 eri arvot.

Kun luomme nämä objektit, kohtauksen takana tapahtuu, että objekti luodaan muistiin ja on käytettävissä ohjelman elinkaaren aikana.

Nyt voit käyttää vertailuoperaattoria “==” tarkistaaksesi, ovatko molemmat objektiarvot samat. Vertailuoperaattorin lähtö on Boolen arvo (tosi tai väärä).

Nyt kun olet vertaillut kahta arvoa tasa-arvon määrittämiseksi, katsotaanpa, miten identiteettioperaattori toimii.

Sisäänrakennettua funktiota Id() käytetään objektin “identiteetin” saamiseen. Kokonaisluku, joka on yksilöllinen ja vakio objektille sen elinaikanaan.

Jotta tämä olisi yksinkertaista, ajattele tätä yksilölliseksi valtion tunnukseksi tai Emp ID: ksi, samoin yksilöllinen kokonaislukuarvo määritetään kullekin objektille.

Nyt voit verrata kahta objektiviittausta “is” -operaattorilla.

Kun verran nimeä ja nimeä1 tai nimeä2 identiteettioperaattorin avulla, mitä se tekee taustalla, se suorittaa yksinkertaisesti “id (Name) == id (Name2)” . Koska molemmilla id (nimi) ja id (nimi 2) on sama muistipaikka, se palauttaa True.

Nyt tulee mielenkiintoinen osa. Katso edellinen esimerkkimme, jossa sekä Nimi että Nimi1 ovat samat arvot ja palauttavat saman kokonaisluvun arvon, kun suoritamme funktiota id() . Miksi luulet, että "Name_new" ja "Name_le" -objektit eivät ole identtiset, vaikka niillä olisi samat arvot alla olevasta kuvakaappauksesta?

Tämä johtuu python-suunnittelun toteutuksesta. Kun luot kokonaislukuobjektin alueella (-5,256) ja merkkijono-objekteja, jotka ovat suurempia tai yhtä suuria kuin 20 merkkiä, sen sijaan, että luodaan muistiin erilaisia objekteja samalle arvolle, nämä objektit toimivat osoittimena jo luotuihin kohteisiin.

Alla oleva kuvaesitys antaa sinulle selkeän kuvan siitä, mitä olemme tähän mennessä nähneet tässä artikkelissa.

Tässä artikkelissa olemme nähneet mikä on identiteettioperaattori. Kuinka vertailuoperaattoria ja identiteettioperaattoria käytetään, suunnittelun toteutus siitä, miten objekti luodaan muistiin