Nein, es gibt in Python keine Möglichkeit, den Namen eines Objekts zu ermitteln. Der Grund dafür ist, dass Objekte eigentlich keine Namen haben.
Angenommen, wir haben den folgenden Code. Hier können wir den tatsächlichen Instanznamen nicht finden. Da sowohl ob1 als auch ob2 an denselben Wert gebunden sind, können wir nicht schließen, ob die Instanznamen von ob1 oder ob2 gleich sind −
Die chinesische Übersetzung von# Creating a Demo Class class Demo: pass Example = Demo ob1 = Example() ob2 = ob1 print(ob2) print(ob1)
<__main__.Demo object at 0x00000250BA6C5390> <__main__.Demo object at 0x00000250BA6C5390>
Wie wir oben gesehen haben, können wir den genauen Namen des Objekts nicht anzeigen. Wir können jedoch Instanzen und Anzahlen anzeigen, wie im folgenden Beispiel gezeigt.
In diesem Beispiel erstellen wir eine Demo-Klasse mit vier Instanzen -
ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo()
Wir durchlaufen die Objekte im Speicher −
for ob in gc.get_objects():
Mit der Funktion isinstance() wird bei jedem Objekt geprüft, ob es eine Instanz der Demo-Klasse ist. Sehen wir uns ein vollständiges Beispiel an -
import gc # Create a Class class Demo: pass # Four objects ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo() # Display all instances of a given class for ob in gc.get_objects(): if isinstance(ob, Demo): print(ob)
<__main__.Demo object at 0x7f18e74fe4c0> <__main__.Demo object at 0x7f18e7409d90> <__main__.Demo object at 0x7f18e7463370> <__main__.Demo object at 0x7f18e7463400>
In diesem Beispiel berechnen wir die Instanz und zeigen −
animport gc # Create a Class class Demo(object): pass # Creating 4 objects ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo() # Calculating and displaying the count of instances res = sum(1 for k in gc.get_referrers(Demo) if k.__class__ is Demo) print("Count the instances = ",res)
Ausgabe
Count the instances = 4
Das obige ist der detaillierte Inhalt vonWie erkennt mein Code den Namen eines Objekts in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!