Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Définition des attributs privés | Encapsulation
Programmation Orientée Objet en Python

bookDéfinition des attributs privés

Glissez pour afficher le menu

Les attributs privés représentent le niveau de protection des données le plus élevé dans le modèle d'encapsulation de Python. En utilisant des doubles underscores, ils activent le mécanisme de masquage de nom de Python, transformant les attributs sensibles en identifiants presque inaccessibles. Cela offre une protection robuste contre les interférences accidentelles et contribue à créer des conceptions de classes sécurisées et professionnelles.

123456789101112131415161718192021
class BankAccount: def __init__(self, owner, balance): self.owner = owner # Public attribute self.__balance = balance # Private attribute def deposit(self, amount): if amount > 0: self.__balance += amount print(f"Deposited {amount}. New balance: {self.__balance}") else: print("Deposit amount must be positive.") def withdraw(self, amount): if 0 < amount <= self.__balance: self.__balance -= amount print(f"Withdrew {amount}. New balance: {self.__balance}") else: print("Invalid withdrawal amount.") def get_balance(self): return self.__balance
copy
Note
Remarque

Bien que les attributs privés puissent techniquement être accessibles via leurs noms masqués, cela viole l'encapsulation et ne doit jamais être utilisé dans du code de production.

Un attribut privé comme __balance dans BankAccount est automatiquement renommé en _BankAccount__balance grâce au masquage de nom. Cela rend l'accès direct plus difficile et décourage l'utilisation externe.

Les attributs privés protègent l'état sensible et garantissent une interaction uniquement via des méthodes publiques validées. Dans des classes comme Wallet ou BankAccount, des données telles que le solde, le code PIN et l'historique des transactions restent privées, tandis que des méthodes comme deposit(), withdraw() et authenticate() appliquent des règles et maintiennent la sécurité.

question mark

Quel est le principal objectif des attributs privés en Python ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 2

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 5. Chapitre 2
some-alt