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.
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
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.
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
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.
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
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
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.
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!