Comprendre les portées des variables dans les classes Python
Déclarer des variables dans les classes Python peut prêter à confusion au début. Cet article vise à clarifier les différentes portées et nuances associées à la déclaration de variable dans les contextes de classe.
Règles de portée générale :
Variables d'instance vs globales Variables :
Les variables d'instance (déclarées en utilisant self.(nom de la variable)) se comportent différemment des variables globales (déclarées en dehors de toute fonction ou classe). Bien que tout ce qui est déclaré dans une classe soit techniquement public, les variables d'instance sont liées à l'instance d'objet individuelle.
Exemple :
class Test: a = None # Class variable b = None # Class variable def __init__(self, a): self.a = a # Instance variable
Dans cet exemple, les variables de classe a et b sont accessibles à toutes les fonctions de classe. Cependant, la variable d'instance self.a est spécifique à chaque instance d'objet. La définition de self.a dans __init__ n'affecte pas la variable de classe a.
Variables protégées :
Bien que Python ne définisse pas explicitement les variables privées ou protégées, les variables préfixées par un le trait de soulignement (_) sont considérés comme protégés. Techniquement, ils sont toujours accessibles en dehors de la classe, mais la modification de leurs noms décourage l'accès.
Variables privées :
Les variables préfixées par un double trait de soulignement (__) sont considérées comme privées. Leurs noms sont mutilés pour rendre difficile leur accès directement en dehors de la classe.
Nuances supplémentaires :
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!