Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Definering af private attributter | Indkapsling
Objektorienteret Programmering i Python

bookDefinering af private attributter

Stryg for at vise menuen

Private attributter repræsenterer det stærkeste niveau af databeskyttelse i Pythons indkapslingsmodel. Ved at bruge dobbelte understregninger aktiveres Pythons name mangling-mekanisme, som omdanner følsomme attributter til næsten utilgængelige identifikatorer. Dette giver robust beskyttelse mod utilsigtet indblanding og bidrager til sikre, professionelle klassedesigns.

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
Bemærk

Selvom private attributter teknisk set kan tilgås via deres manglende navne, bryder dette indkapslingen og bør aldrig anvendes i produktionskode.

Et privat attribut som __balance i BankAccount omdøbes automatisk til _BankAccount__balance gennem navneforvrængning. Dette gør det sværere at tilgå direkte og fraråder ekstern brug.

Private attributter beskytter følsom tilstand og sikrer interaktion kun gennem validerede offentlige metoder. I klasser som Wallet eller BankAccount forbliver data som saldo, PIN og transaktionshistorik private, mens metoder som deposit(), withdraw() og authenticate() håndhæver regler og opretholder sikkerhed.

question mark

Hvad er hovedformålet med private attributter i Python?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 5. Kapitel 2
some-alt