Heim  >  Artikel  >  Backend-Entwicklung  >  Worauf bezieht sich die Funktion id() in Python?

Worauf bezieht sich die Funktion id() in Python?

不言
不言Original
2018-04-16 16:58:586097Durchsuche

Dieser Artikel stellt vor, worauf sich die Funktion id() bezieht. Sie hat einen bestimmten Referenzwert. Jetzt können Freunde in Not auf die Funktion

verweisen Holen Sie sich die Speicheradresse des Objekts. Viele Freunde wissen nicht, was die ID-Funktion in Python ist? Als nächstes wird der Herausgeber diesen Artikel mit Ihnen teilen, um Ihnen beim Lernen zu helfen

Die Erklärung in der offiziellen Python-Dokumentation lautet

id(object)
Gibt die zurück „Identität“ eines Objekts. Dies ist eine Ganzzahl (oder lange Ganzzahl), die für dieses Objekt während seiner Lebensdauer garantiert eindeutig und konstant ist. Zwei Objekte mit nicht überlappenden Lebensdauern können denselben id()-Wert haben.
CPython-Implementierungsdetail: Dies ist die Adresse des Objekts im Speicher.

Sie können dies sehen:

1. id(object) gibt die „ID-Karte“ zurück „Nummer“ des Objekts, eindeutig und unverändert, aber derselbe ID-Wert kann in nicht überlappenden Lebenszyklen auftreten. Die hier genannten Objekte sollten sich speziell auf zusammengesetzte Typobjekte (wie Klassen, Listen usw.) beziehen. Bei Typen wie Zeichenfolgen und Ganzzahlen ändert sich die ID der Variablen, wenn sich der Wert ändert.

2. Der ID-Wert eines Objekts repräsentiert seine Adresse im Speicher im CPython-Interpreter. (CPython-Interpreter: http://zh.wikipedia.org/wiki/CPython) Wenn bestimmt wird, ob zwei Objekte gleich sind, ist die Basis der ID-Wert


class Obj(): 
 def __init__(self,arg): 
  self.x=arg 
if __name__ == '__main__': 
 obj=Obj(1) 
 print id(obj)  #32754432 
 obj.x=2 
 print id(obj)  #32754432 
 s="abc" 
 print id(s)   #140190448953184 
 s="bcd" 
 print id(s)   #32809848 
 x=1 
 print id(x)   #15760488 
 x=2 
 print id(x)   #15760464


Der Unterschied zwischen is und == besteht darin, dass es sich um einen Vergleich im Speicher handelt und == um einen Vergleich von Werten

Verwandte Empfehlungen:

class Obj(): 
 def __init__(self,arg): 
  self.x=arg 
 def __eq__(self,other): 
  return self.x==other.x 
if __name__ == '__main__': 
 obj1=Obj(1) 
 obj2=Obj(1) 
 print obj1 is obj2 #False 
 print obj1 == obj2 #True 
 lst1=[1] 
 lst2=[1] 
 print lst1 is lst2 #False 
 print lst1 == lst2 #True 
 s1='abc' 
 s2='abc' 
 print s1 is s2  #True 
 print s1 == s2  #True 
 a=2 
 b=1+1 
 print a is b  #True 
 a = 19998989890 
 b = 19998989889 +1 
 print a is b  #False
Python-Strahlungscode-Implementierung


Das obige ist der detaillierte Inhalt vonWorauf bezieht sich die Funktion id() in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Über PHP-NamespacesNächster Artikel:Über PHP-Namespaces