Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Definiera privata attribut | Inkapsling
Objektorienterad Programmering i Python

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

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
Notering

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

question mark

Vad är huvudsyftet med privata attribut i Python?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 5. Kapitel 2
some-alt