id(object)
Funktion: Zurückgegeben wird die „ID-Kartennummer“ des Objekts, die eindeutig und unverändert ist. Derselbe ID-Wert kann jedoch 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.
Python-Version: Python2.x Python3.x
Erklärung zum offiziellen Python-Dokument:
Gibt die „Identität“ eines Objekts zurück. Dies ist eine Ganzzahl (oder eine 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 in Speicher.
Hinweis: Der ID-Wert eines Objekts stellt seine Adresse im Speicher im CPython-Interpreter dar (dem in Pythons C-Sprache implementierten Interpreter).
Codebeispiel:
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
Wenn mit bestimmt werden soll, ob zwei Objekte gleich sind, ist die Basis der ID-Wert
is und Der Unterschied zwischen == besteht darin, dass is ein Vergleich im Speicher ist und == ein Wertevergleich ist