Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Private Attribute Definieren | Kapselung
Objektorientierte Programmierung in Python

bookPrivate Attribute Definieren

Swipe um das Menü anzuzeigen

Private Attribute stellen die stärkste Stufe des Datenschutzes im Kapselungsmodell von Python dar. Durch die Verwendung von doppelten Unterstrichen wird der Namensverschleierungsmechanismus von Python aktiviert, wodurch sensible Attribute in nahezu unzugängliche Bezeichner umgewandelt werden. Dies bietet einen robusten Schutz vor unbeabsichtigten Zugriffen und unterstützt die Entwicklung sicherer, professioneller Klassenstrukturen.

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
Hinweis

Obwohl auf private Attribute technisch über ihre verschleierten Namen zugegriffen werden kann, verstößt dies gegen die Kapselung und sollte niemals im Produktivcode verwendet werden.

Ein privates Attribut wie __balance in BankAccount wird durch Namensveränderung automatisch in _BankAccount__balance umbenannt. Dies erschwert den direkten Zugriff und entmutigt die externe Nutzung.

Private Attribute schützen sensible Zustände und gewährleisten die Interaktion ausschließlich über validierte öffentliche Methoden. In Klassen wie Wallet oder BankAccount bleiben Daten wie Kontostand, PIN und Transaktionshistorie privat, während Methoden wie deposit(), withdraw() und authenticate() Regeln durchsetzen und Sicherheit gewährleisten.

question mark

Was ist der Hauptzweck privater Attribute in Python?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 5. Kapitel 2
some-alt