Maison > développement back-end > Tutoriel Python > 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
Libérer: 2023-08-19 14:57:14
avant
1057 Les gens l'ont consulté

Comment mon code découvre-t-il le nom dun 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)
Copier après la connexion

Sortie

<__main__.Demo object at 0x00000250BA6C5390>
<__main__.Demo object at 0x00000250BA6C5390>
Copier après la connexion

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()
Copier après la connexion

Nous parcourons les objets en mémoire −

for ob in gc.get_objects():
Copier après la connexion

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)
Copier après la connexion

Sortie

<__main__.Demo object at 0x7f18e74fe4c0>
<__main__.Demo object at 0x7f18e7409d90>
<__main__.Demo object at 0x7f18e7463370>
<__main__.Demo object at 0x7f18e7463400>
Copier après la connexion

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)
Copier après la connexion

Sortie

Count the instances = 4
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal