Uzziniet Python identitātes operatoru un atšķirību starp operatoru "==" un "IS"


Šis raksts galvenokārt ir izstrādāts, lai izskaidrotu svarīgu operatoru pitonā (“IDENTITY OPERATOR”) un to, kā identitātes operators atšķiras (ir, nav) no salīdzināšanas operatora (==) .

IDENTITĀTES OPERATORS

Identitātes operators ( “is” un “is” ) tiek izmantots, lai salīdzinātu objekta atmiņas atrašanās vietu. Kad objekts tiek izveidots atmiņā, šim objektam tiek piešķirta unikāla atmiņas adrese.

  • ‘==’ salīdzina, ja abas objekta vērtības ir identiskas vai nav.
  • ‘is’ salīdzina, ja abi objekti pieder vienai un tai pašai atmiņas vietai.

Izveidojiet trīs virknes objektus Name, Name1 un Name2. Virknes objektam Vārds un Vārds2 būs vienāda vērtība, bet Vārdam1 būs dažādas vērtības.

Kad mēs izveidojam šos objektus, notiek tas, kas notiek aiz ainas, tas objekts tiks izveidots atmiņā un būs pieejams programmas darbības laikā.

Tagad varat izmantot salīdzināšanas operatoru “==” , lai pārbaudītu, vai abas objekta vērtības ir vienādas. Salīdzināšanas operatora izeja būs Būla vērtība (True vai False).

Tagad, kad esat salīdzinājis divas vērtības, lai noteiktu vienlīdzību, ļaujiet mums apskatīt identitātes operatora darbību.

Iebūvētā funkcija Id() tiek izmantota, lai iegūtu objekta “identitāti”. Vesels skaitlis, kas objekta dzīves laikā būs unikāls un nemainīgs.

Lai būtu vienkāršāk, domājiet, ka tas ir unikāls valdības ID vai Emp ID, kas jums piešķirts, tāpat katram objektam tiek piešķirta unikāla vesela skaitļa vērtība.

Tagad varat salīdzināt 2 objektu atsauces, izmantojot operatoru “is” .

Ja salīdzinu vārdu un vārdu1 vai vārdu2, izmantojot identitātes operatoru, tas, ko tas dara aizmugurē, vienkārši palaiž “id (Name) == id (Name2)” . Tā kā gan id (nosaukums), gan id (nosaukums2) atmiņas atrašanās vieta ir vienāda, tas atgriež vērtību True.

Tagad šeit nāk interesanta daļa. Apskatiet mūsu iepriekšējo piemēru, kur gan Vārdam, gan Vārdam1 ir identiskas vērtības un atgriež to pašu vesela skaitļa vērtību, palaižot funkciju id() . Kāpēc jūs domājat, kāpēc “Name_new” un “Name_le” objekts nav identisks, kaut arī tiem ir vienādas vērtības no šī ekrānuzņēmuma?

Tas ir saistīts ar pitona dizaina ieviešanu. Veidojot vesela skaitļa objektu diapazonā (-5,256) un virknes objektus, kas ir lielāki vai vienādi ar 20 rakstzīmēm, tā vietā, lai atmiņā izveidotu dažādus objektus vienai un tai pašai vērtībai, šie objekti darbojas kā rādītājs jau izveidotajiem objektiem.

Zemāk attēlots attēlojums sniegs skaidru priekšstatu par to, ko mēs līdz šim esam redzējuši šajā rakstā.

Šajā rakstā mēs esam redzējuši, kas ir identitātes operators. Kā tiek izmantots salīdzināšanas operators un identitātes operators, dizaina ieviešana, kā objekts tiek izveidots atmiņā.