Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Definere private attributter | Innkapsling
Objektorientert Programmering i Python

bookDefinere private attributter

Sveip for å vise menyen

Private attributter representerer det sterkeste nivået av databeskyttelse i Pythons innkapslingsmodell. Ved å bruke doble understreker aktiveres Pythons navneforvrengningsmekanisme, som omdanner sensitive attributter til nesten utilgjengelige identifikatorer. Dette gir robust beskyttelse mot utilsiktet innblanding og bidrar til sikre, profesjonelle klasseutforminger.

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
Merk

Selv om private attributter teknisk sett kan nås gjennom sine forvrengte navn, bryter dette med innkapsling og bør aldri brukes i produksjonskode.

Et privat attributt som __balance i BankAccount blir automatisk omdøpt til _BankAccount__balance gjennom navneforvrengning. Dette gjør det vanskeligere å få direkte tilgang og motvirker ekstern bruk.

Private attributter beskytter sensitiv tilstand og sikrer at interaksjon kun skjer gjennom validerte offentlige metoder. I klasser som Wallet eller BankAccount forblir data som saldo, PIN og transaksjonshistorikk private, mens metoder som deposit(), withdraw() og authenticate() håndhever regler og opprettholder sikkerhet.

question mark

Hva er hovedformålet med private attributter i Python?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 5. Kapittel 2
some-alt