"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-09
Parcourir:953

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

Suivi des instances de classe pour la collecte de variables

La maintenance 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3