Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erkennt mein Code den Namen eines Objekts in Python?

Wie erkennt mein Code den Namen eines Objekts in Python?

WBOY
WBOYnach vorne
2023-08-19 14:57:14978Durchsuche

Wie erkennt mein Code den Namen eines Objekts in Python?

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

Beispiel

lautet:

Beispiel

# Creating a Demo Class
class Demo:
   pass

Example = Demo
ob1 = Example()
ob2 = ob1

print(ob2)
print(ob1)

Ausgabe

<__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.

Holen Sie sich eine Instanz einer Klasse

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():

Beispiel

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)

Ausgabe

<__main__.Demo object at 0x7f18e74fe4c0>
<__main__.Demo object at 0x7f18e7409d90>
<__main__.Demo object at 0x7f18e7463370>
<__main__.Demo object at 0x7f18e7463400>

Zeigen Sie die Anzahl der Instanzen einer Klasse an

In diesem Beispiel berechnen wir die Instanz und zeigen −

an

Beispiel

import 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen