Definering 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.
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
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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat