Maison > développement back-end > Tutoriel Python > Comment fonctionnent les portées variables dans les classes Python ?

Comment fonctionnent les portées variables dans les classes Python ?

Mary-Kate Olsen
Libérer: 2024-11-17 21:58:01
original
881 Les gens l'ont consulté

How Do Variable Scopes Work in Python Classes?

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 de classe :Déclarées en dehors des fonctions au sein d'une classe, ces variables sont accessibles à toutes les fonctions de la classe.
  • Local Variables : Déclarées à l'intérieur des fonctions d'une classe, ces variables ne sont accessibles que dans cette fonction.
  • Variables d'instance : Déclarées en utilisant self.(nom de la variable) à l'intérieur des fonctions d'une classe, ces variables sont accessibles à toutes les fonctions de classe.

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

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 :

  • Variables attribuées au sein des fonctions locales mais en dehors de soi.( nom de la variable) ne sont pas disponibles en dehors de cette fonction.
  • Les variables protégées et privées inaltérables ne sont pas complètement inaccessibles en dehors de la classe mais ne doivent pas être invoquées pour une véritable encapsulation.

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