Maison >développement back-end >Tutoriel Python >Comment suivre et récupérer efficacement les variables d'instance dans les classes Python ?

Comment suivre et récupérer efficacement les variables d'instance dans les classes Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 07:37:02523parcourir

 How to Efficiently Track and Retrieve Instance Variables in Python Classes?

Suivi des instances de classe pour la collecte de variables

Le maintien d'une liste d'instances pour une classe particulière permet une récupération efficace de variables spécifiques de chaque instance à une étape ultérieure du programme.

Approche des variables de classe

Une méthode appropriée pour suivre les instances de classe consiste à utiliser une variable de classe. L'exemple suivant illustre cette approche :

class Foo:
    instances = []

    def __init__(self):
        self.x = {}
        Foo.instances.append(self)

Cette technique crée une liste partagée d'instances au sein de la classe. Au fur et à mesure que chaque instance est créée, elle s'ajoute à la liste.

Récupération des variables d'instance

Pour collecter x dictionnaires de toutes les instances à la fin du programme, créez un nouveau dictionnaire :

foo_vars = {id(instance): instance.x for instance in Foo.instances}

Ici, id() fournit des identifiants uniques pour chaque instance, permettant la création d'un dictionnaire avec les ID d'instance comme clés et x dictionnaires comme valeurs.

Liste partagée

L'approche des variables de classe garantit qu'une seule liste, les instances, est conservée dans toutes les instances, quel que soit leur nombre. Cela élimine le besoin de suivre des listes individuelles pour chaque instance.

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