Maison > développement back-end > Tutoriel Python > Python -Comment définir des variables publiques, privées et protégées dans une classe

Python -Comment définir des variables publiques, privées et protégées dans une classe

WBOY
Libérer: 2024-09-12 10:22:19
original
986 Les gens l'ont consulté

Python -How to define public, private and protected variables in a class

Introduction

Python, en tant que langage de programmation orienté objet, propose différentes manières d'encapsuler des données dans une classe.
L'un des aspects clés de cette encapsulation est la visibilité des variables de classe, qui peuvent être classées comme publiques, protégées et privées. Dans cet article, nous explorerons comment définir des variables publiques, privées et protégées dans une classe Python.

Le comportement de ces variables est assez différent des autres langages de programmation. Ces contrôles d'accès ne sont que des conventions de dénomination en python plutôt que de véritables masquages ​​d'objets.

1. Variables publiques

Les variables publiques sont le type de variable le plus accessible. Ils sont accessibles de n’importe où, à l’intérieur comme à l’extérieur de la classe. En Python, toutes les variables de classe sont publiques par défaut, sauf indication contraire explicite.

Exemple :

class MyClass:
    def __init__(self, name):
        self.name = name  # Public variable

obj = MyClass("John")
print(obj.name)  # Accessible outside the class
#Output : John
Copier après la connexion

Dans cet exemple, name est une variable publique. Vous pouvez y accéder et le modifier depuis l'extérieur de la classe sans aucune restriction.

2. Variables protégées

Les variables protégées sont destinées à être accessibles uniquement au sein de la classe et de ses sous-classes. Bien que Python n'applique pas de contrôles d'accès stricts, la convention pour indiquer qu'une variable est protégée est de préfixer son nom avec un seul trait de soulignement (_).

Exemple :

class MyClass:
    def __init__(self, name, age):
        self._age = age  # Protected variable

class ChildClass(MyClass):
    def display(self):
        print(f"Age: {self._age}")  # Accessible within a subclass

obj = ChildClass("John", 30)
obj.display()  
# Output: Age: 30
Copier après la connexion

Dans cet exemple, l'âge est une variable protégée. Bien que Python ne vous empêche pas d'y accéder directement en dehors de la classe, cela va à l'encontre de l'usage prévu.

3. Variables privées

Les variables privées sont destinées à être accessibles uniquement au sein de la classe qui les définit. Python signifie les variables privées en préfixant le nom de la variable avec un double trait de soulignement (__). Cela déclenche la modification du nom, ce qui rend plus difficile (mais pas impossible) l'accès aux variables privées depuis l'extérieur de la classe.

Exemple :

class MyClass:
    def __init__(self, name, age, salary):
        self.__salary = salary  # Private variable

    def display_salary(self):
        print(f"Salary: {self.__salary}")  # Accessible within the class

obj = MyClass("John", 30, 50000)
obj.display_salary()  # Output: Salary: 50000

# Trying to access the private variable outside the class
print(obj.__salary)  # Raises AttributeError
Copier après la connexion

Dans cet exemple, le salaire est une variable privée. Si vous essayez d'y accéder directement depuis l'extérieur de la classe, Python générera une AttributeError. Cependant, vous pouvez toujours y accéder en utilisant la version avec nom mutilé, bien que cela soit déconseillé.

Exemple de modification de nom :

print(obj._MyClass__salary)  # Output: 50000
Copier après la connexion

Cette ligne de code montre comment les variables privées sont renommées en interne pour inclure le nom de la classe, les rendant ainsi moins accessibles.

Résumé

  • Variables publiques : accessibles de n'importe où ; pas de traits de soulignement.
  • Variables protégées : Accessibles au sein de la classe et de ses sous-classes ; préfixé par un seul trait de soulignement (_).
  • Variables privées : Accessible uniquement au sein de la classe ; préfixé par un double trait de soulignement (__).

Bien que les contrôles d'accès de Python soient basés sur des conventions de dénomination plutôt que sur une application stricte, le respect de ces conventions permet de maintenir la clarté et l'intégrité du code. Comprendre comment définir et utiliser des variables publiques, protégées et privées est crucial pour une programmation orientée objet efficace en Python.

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:dev.to
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