Визначення приватних атрибутів
Свайпніть щоб показати меню
Приватні атрибути забезпечують найвищий рівень захисту даних у моделі інкапсуляції Python. Використання подвійних підкреслень активує механізм іменного спотворення (name mangling) Python, перетворюючи чутливі атрибути на майже недоступні ідентифікатори. Це забезпечує надійний захист від випадкового втручання та сприяє створенню безпечних, професійних класів.
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
Хоча приватні атрибути технічно можна отримати через їх спотворені імена, це порушує принцип інкапсуляції і не повинно використовуватися у виробничому коді.
Приватний атрибут, такий як __balance у BankAccount, автоматично перейменовується на _BankAccount__balance за допомогою механізму name mangling. Це ускладнює прямий доступ і відлякує від зовнішнього використання.
Приватні атрибути захищають чутливий стан і забезпечують взаємодію лише через перевірені публічні методи. У класах на кшталт Wallet або BankAccount дані, такі як баланс, PIN-код і історія транзакцій, залишаються приватними, а методи на кшталт deposit(), withdraw() і authenticate() забезпечують дотримання правил і підтримують безпеку.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат