Definiera privata attribut
Svep för att visa menyn
Privata attribut utgör den starkaste nivån av dataskydd i Pythons kapslingsmodell. Genom att använda dubbla understreck aktiveras Pythons namnförvanskningsmekanism, vilket omvandlar känsliga attribut till nästintill oåtkomliga identifierare. Detta ger ett robust skydd mot oavsiktlig påverkan och bidrar till säkra, professionella klassdesigner.
123456789101112131415161718192021class 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
Även om privata attribut tekniskt sett kan nås via sina förvanskade namn, bryter detta mot kapslingsprincipen och bör aldrig användas i produktionskod.
Ett privat attribut som __balance i BankAccount byter automatiskt namn till _BankAccount__balance genom namnförvanskning. Detta gör det svårare att komma åt direkt och avskräcker extern användning.
Privata attribut skyddar känsligt tillstånd och säkerställer interaktion endast via validerade publika metoder. I klasser som Wallet eller BankAccount förblir data som saldo, PIN-kod och transaktionshistorik privata, medan metoder som deposit(), withdraw() och authenticate() upprätthåller regler och säkerhet.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal