Attributs de classe et d'instance : variables à l'intérieur et à l'extérieur de __init__()
Dans la programmation orientée objet, les attributs de classe et les attributs d'instance jouent un rôle crucial rôles. Mais quelle est la différence entre placer une variable à l’intérieur ou à l’extérieur de la méthode __init__() ? Examinons cette distinction.
Considérez les extraits de code donnés :
<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 en dehors de __init__()
Variables définies en dehors de __init__() appartiennent à la classe. Ils sont communs à toutes les instances créées à partir de cette classe. Par exemple, dans la classe WithoutClass :
<code class="python">WithoutClass.value = "Bob"</code>
L'accès à cette variable via n'importe quelle instance de la classe WithoutClass renverra la même valeur "Bob".
Variables Inside __init__()
En revanche, les variables définies dans __init__(), préfixées par self., appartiennent à chaque objet individuel. Lors de la définition d'une variable dans __init__(), elle devient un attribut d'instance spécifique à cet objet.
<code class="python">WithClass().value = "Alice" # Unique to this instance</code>
L'accès à cette même variable à partir d'une autre instance de la classe WithClass produira une valeur différente :
<code class="python">WithClass().value = "Bob" # Unique to this instance</code>
Implications
Le choix de l'endroit où déclarer une variable a des implications sur son comportement.
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!