Voici quelques titres basés sur des questions qui correspondent à votre article : * Attributs de classe ou d'instance : où devez-vous définir des variables en Python ? * Programmation orientée objet Python : quand utiliser Class Attri

DDD
Libérer: 2024-10-27 18:31:30
original
652 Les gens l'ont consulté

Here are a few question-based titles that fit your article:

* Class vs. Instance Attributes: Where Should You Define Variables in Python?
* Python Object-Oriented Programming: When to Use Class Attributes and Instance Attributes?
* Understanding the Diff

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

Implications

Le choix de l'endroit où déclarer une variable a des implications sur son comportement.

  • Variables à l'échelle de la classe : Placer une variable en dehors de __init__() en fait un attribut de classe, partagé entre toutes les instances. Cela peut être utile pour les paramètres globaux ou les propriétés qui s'appliquent de manière cohérente à tous les objets.
  • Variables spécifiques à l'instance : Définition d'une variable dans __init__() avec self. le préfixe crée un attribut spécifique à l'instance. Chaque objet possède sa propre copie de cette variable, permettant la personnalisation d'objets individuels.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!