Weboldal keresés

Ismerje meg a Python Identity Operátort és a "==" és az "IS" operátor közötti különbséget


Ez a cikk elsősorban a python egyik fontos operátorát („IDENTITY OPERATOR”), valamint azt, hogy miben különbözik az identitásoperátor (is, nem) ) a (==) összehasonlító operátortól.

IDENTITÁS ÜZEMELTETÉS

Az azonosító operátor ("is " és "nem") az objektum memóriahelyének összehasonlítására szolgál. Amikor egy objektumot létrehozunk a memóriában, egy egyedi memóriacím kerül hozzárendelésre az objektumhoz.

  • A '==' összehasonlítja, hogy mindkét objektumérték azonos-e vagy sem.
  • A 'is' összehasonlítja, ha mindkét objektum ugyanahhoz a memóriahelyhez tartozik.

Hozzon létre három karakterlánc-objektumot: Név, Név1 és Név2. A karakterlánc-objektum Name és Name2 ugyanazt az értéket fogja tartalmazni, a Name1 pedig különböző értékeket.

Amikor létrehozzuk ezeket az objektumokat, az történik a színfalak mögött, hogy az objektum létrejön a memóriában, és elérhető lesz a program élettartama alatt.

Mostantól a “== ” összehasonlító operátorral ellenőrizheti, hogy mindkét objektumérték megegyezik-e. Az összehasonlító operátor kimenete logikai (igaz vagy hamis) érték lesz.

Most, hogy összehasonlított két értéket az egyenlőség meghatározásához, nézzük meg, hogyan működik az identitás operátor.

A beépített Id() függvény egy objektum „identitása ” lekérésére szolgál. Egész szám, amely egyedi és állandó lesz az objektum élete során.

Az egyszerűség kedvéért úgy gondolja, hogy ez az Önhöz rendelt egyedi kormányzati ID vagy Emp ID, hasonlóképpen minden objektumhoz egyedi egész érték van hozzárendelve.

Most összehasonlíthat 2 objektumhivatkozást az „is ” operátor használatával.

Ha összehasonlítom a Name és a Name1 vagy a Name2 azonosító operátort használva, akkor a háttérben egyszerűen az "id(Name ) == id(Név2) ”. Mivel az id(Name) és az id(Name2) ugyanazt a memóriahelyet használja, az True értéket adja vissza.

Most jön az érdekes rész. Tekintse meg az előző példánkat, ahol a Név és a Név1 értéke azonos, és ugyanazt az egész értéket adja vissza, amikor az id() függvényt futtatjuk. Miért gondolja, hogy a „Name_new” és a „Name_le” objektumok nem azonosak, még akkor is, ha ugyanazokat az értékeket osztják meg az alábbi képernyőképen?

Ez a python tervezési megvalósításának köszönhető. Ha egy egész objektumot hoz létre a tartományban (-5,256), és 20 karakternél nagyobb vagy egyenlő objektumokat ír be, akkor ahelyett, hogy különböző objektumokat hozna létre a memóriában ugyanazzal az értékkel mutatóként működik a már létrehozott objektumokra.

Az alábbi képi ábrázolás világos képet ad arról, amit ebben a cikkben eddig láttunk.

Összegzés

Ebben a cikkben láthattuk, mi az identitás-operátor. Az összehasonlító operátor és az identitás operátor használatának módja, tervezési megvalósítás az objektum memóriában való létrehozására.