Maison > développement back-end > Tutoriel Python > En quoi les variables de classe et d'instance diffèrent-elles en Python ?

En quoi les variables de classe et d'instance diffèrent-elles en Python ?

Patricia Arquette
Libérer: 2024-10-29 07:18:30
original
421 Les gens l'ont consulté

How do Class and Instance Variables Differ in Python?

Comprendre les variables de classe et d'instance en Python

L'un des concepts clés de la programmation orientée objet est la distinction entre les variables de classe et d'instance. En Python, ces variables jouent un rôle crucial dans la gestion des données au sein d'une classe. Cependant, une confusion peut survenir quant à leur comportement en fonction de la façon dont ils sont définis.

Variables de classe et d'instance

  • Variables de classe : Les variables déclarées dans une classe mais en dehors de toute méthode sont appelées variables de classe. Elles sont partagées entre toutes les instances de la classe, quel que soit leur état.
  • Variables d'instance : Variables déclarées dans une méthode d'une classe, à l'aide du self mot-clé, sont appelés variables d'instance. Elles sont spécifiques à chaque instance de la classe.

Exemple 1 : Variable de classe

<code class="python">class testClass():
    list = []
    def __init__(self):
        self.list.append('thing')</code>
Copier après la connexion

Dans cet exemple, la liste La variable est une variable de classe car elle est définie en dehors de toute méthode. Par conséquent, lorsqu'une nouvelle instance de la classe est créée, elle accède à la même variable list et à son contenu. Ainsi, le résultat pour les deux instances (p et f) est :

['thing']
['thing', 'thing']
Copier après la connexion

Exemple 2 : variable d'instance

<code class="python">class testClass():
    def __init__(self):
        self.list = []
        self.list.append('thing')</code>
Copier après la connexion

Dans cet exemple, la variable list est définie dans la méthode __init__(), en utilisant self. Par conséquent, cela devient une variable d’instance. Chaque instance a sa propre variable list distincte. Ainsi, le résultat pour chaque instance est :

['thing']
['thing']
Copier après la connexion

Résolution de nom pour les variables de classe et d'instance

La clé pour comprendre le comportement des variables de classe et d'instance réside dans comment Python résout les noms. Lorsque vous accédez à self.list, Python vérifie d'abord si un attribut list existe dans l'instance elle-même. S'il n'est pas trouvé, il vérifie ensuite la définition de la classe.

Cela explique pourquoi dans le premier exemple, list est traitée comme une variable de classe, tandis que dans le deuxième exemple, elle devient une instance variable.

En résumé, le placement des définitions de variables dans une classe ou une méthode détermine s'il s'agit de variables de classe ou d'instance. Comprendre cette distinction est crucial pour gérer efficacement les données dans le code Python orienté objet.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal