Maison >développement back-end >Tutoriel Python >Comment puis-je garantir des données spécifiques à une instance dans les classes Python ?

Comment puis-je garantir des données spécifiques à une instance dans les classes Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 07:40:09640parcourir

How Can I Ensure Instance-Specific Data in Python Classes?

Données spécifiques à une instance dans les classes

Dans la programmation orientée objet, il est possible que les instances d'une classe partagent des données. Cela peut être indésirable lorsque vous souhaitez que chaque instance conserve ses propres données distinctes.

Supposons que nous ayons la classe suivante :

class A:
    list = []

Lorsque nous créons des instances de cette classe, elles partagent toutes le même attribut de liste :

>>> x = A()
>>> y = A()
>>> x.list.append(1)
>>> y.list.append(2)
>>> print(x.list)
[1, 2]
>>> print(y.list)
[1, 2]

Pour éviter ce comportement et fournir des instances distinctes pour chaque objet, nous pouvons modifier la classe déclaration :

class A:
    def __init__(self):
        self.list = []

En déclarant list dans la méthode __init__, nous créons une nouvelle instance de list pour chaque nouvelle instance de A. Cela garantit que chaque instance de A a son propre attribut de liste indépendant :

>>> x = A()
>>> y = A()
>>> x.list.append(1)
>>> y.list.append(2)
>>> print(x.list)
[1]
>>> print(y.list)
[2]

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