Maison > Article > développement back-end > Variables d'instance ou de classe : où devez-vous déclarer les variables en Python ?
Variables internes et externes init
L'emplacement où vous déclarez une variable dans une classe Python peut avoir un impact significatif sur son comportement. Considérez les deux classes suivantes :
<code class="python">class WithClass(): def __init__(self): self.value = "Bob" def my_func(self): print(self.value) class WithoutClass(): value = "Bob" def my_func(self): print(self.value)</code>
Variables de classe et variables d'instance
La principale différence entre ces deux classes réside dans l'endroit où la valeur de la variable est déclarée. Dans WithClass, il est déclaré dans la méthode __init__, ce qui en fait une variable d'instance. Cela signifie que chaque instance de WithClass aura sa propre copie indépendante de l'attribut value.
D'autre part, dans WithoutClass, l'attribut value est déclaré en dehors de la méthode __init__, ce qui en fait une variable de classe. Par conséquent, toutes les instances de WithoutClass partageront la même instance unique de l'attribut value.
Méthodes d'initialisation
La méthode __init__ dans WithClass sert d'initialiseur pour chaque instance d'objet. Lorsqu'une instance est créée, la méthode __init__ est appelée et l'attribut self.value reçoit la valeur « Bob ». Cette valeur est ensuite stockée dans l'instance et est disponible pour d'autres méthodes au sein de l'objet.
Conséquences
La décision de savoir où déclarer une variable peut avoir des implications pour votre le comportement du programme. Si vous avez besoin que chaque instance d'une classe ait sa propre valeur unique pour un attribut particulier, elle doit être déclarée dans la méthode __init__ en tant que variable d'instance. Alternativement, si toutes les instances d'une classe doivent partager la même valeur pour un attribut, celui-ci peut être déclaré en dehors de la méthode __init__ en tant que variable de classe.
Par conséquent, la distinction essentielle est de savoir si vous souhaitez que la variable soit partagé entre toutes les instances de la classe (variable de classe) ou pour être unique à chaque instance individuelle (variable d'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!