Maison  >  Article  >  développement back-end  >  Comment mon code découvre-t-il le nom d’un objet en Python ?

Comment mon code découvre-t-il le nom d’un objet en Python ?

WBOY
WBOYavant
2023-08-19 14:57:141012parcourir

Comment mon code découvre-t-il le nom d’un objet en Python ?

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

Exemple

est :

Exemple

# Creating a Demo Class
class Demo:
   pass

Example = Demo
ob1 = Example()
ob2 = ob1

print(ob2)
print(ob1)

Sortie

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

Obtenir une instance d'une classe

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

Exemple

À 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)

Sortie

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

Afficher le nombre d'instances d'une classe

Dans cet exemple, nous calculerons l'instance et afficherons −

Exemple

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer