Non, il n'y a aucun moyen en Python de découvrir le nom d'un objet. La raison est que les objets n’ont pas de nom.
Supposons que nous ayons le code suivant. Ici, nous ne pouvons pas trouver le nom réel de l'instance. Puisque ob1 et ob2 sont liés à la même valeur, nous ne pouvons pas déterminer si les noms d'instance de ob1 ou ob2 sont les mêmes −
La traduction chinoise de# 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>
Comme nous l'avons vu ci-dessus, nous ne pouvons pas afficher le nom exact de l'objet. Cependant, nous pouvons afficher les instances et les décomptes, comme le montre l'exemple ci-dessous.
Dans cet exemple, nous créons une classe Demo avec quatre instances -
ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo()
Nous parcourons les objets en mémoire −
for ob in gc.get_objects():
À l'aide de la fonction isinstance(), chaque objet sera vérifié s'il s'agit d'une instance de la classe Demo. Voyons un exemple complet -
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>
Dans cet exemple, nous calculerons l'instance et afficherons −
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)
Sortie
Count the instances = 4
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!