ООП в Python #3

В нашем втором уроке по основам ООП на Python мы рассмотрим важнейшую концепцию – инкапсуляцию и управление доступом к данным!

🔸Что такое инкапсуляция? Инкапсуляция – это механизм объединения данных и методов, которые работают с этими данными, внутри одного класса. Это помогает скрыть внутреннюю реализацию объекта и защищает данные от некорректного использования.

🔸Управление доступом к данным. В Python доступ к данным можно регулировать с помощью модификаторов доступа. Существует три уровня доступа:

🔹Публичный (public) – атрибуты и методы доступны из любого места. 🔹Защищенный (protected) – атрибуты и методы доступны только внутри класса и его подклассов. 🔹Приватный (private) – атрибуты и методы доступны только внутри класса.

🔹Пример реализации Рассмотрим пример класса BankAccount:

class BankAccount:
    def __init__(self, owner, balance):
        self.owner = owner  # Публичный атрибут
        self._balance = balance  # Защищенный атрибут

    def deposit(self, amount):
        if amount > 0:
            self._balance += amount  # Доступ к защищенному атрибуту
        else:
            print("Invalid deposit amount")

    def withdraw(self, amount):
        if 0 < amount <= self._balance:
            self._balance -= amount  # Доступ к защищенному атрибуту
        else:
            print("Invalid withdraw amount")

    def get_balance(self):
        return self._balance  # Публичный метод для доступа к защищенному атрибуту

🔹Приватные атрибуты и методы Для создания приватных атрибутов и методов используется двойное подчеркивание __:

class SecretAccount:
    def __init__(self, owner, balance):
        self.__owner = owner  # Приватный атрибут
        self.__balance = balance  # Приватный атрибут

    def __update_balance(self, amount):
        self.__balance += amount  # Приватный метод

    def get_owner(self):
        return self.__owner  # Публичный метод для доступа к приватному атрибуту

    def get_balance(self):
        return self.__balance  # Публичный метод для доступа к приватному атрибуту

🔹Доступ к защищенным и приватным данным

account = BankAccount("Alice", 1000)
print(account.owner)  # Доступ к публичному атрибуту

# Доступ к защищенному атрибуту через публичный метод
print(account.get_balance())

# Прямой доступ к защищенному атрибуту (не рекомендуется)
print(account._balance)

secret_account = SecretAccount("Bob", 5000)
print(secret_account.get_owner())  # Доступ к приватному атрибуту через публичный метод
print(secret_account.get_balance())  # Доступ к приватному атрибуту через публичный метод

# Прямой доступ к приватному атрибуту (ошибка)
# print(secret_account.__balance)  # Ошибка AttributeError

🔸Заключение Инкапсуляция и управление доступом к данным помогают создавать более безопасные и управляемые программы. В следующем уроке мы изучим наследование и создание иерархий классов. Оставайтесь с нами! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #ООП #Python #Инкапсуляция #Программирование #Обучение

ООП в Python #3
В нашем втором уроке по основам ООП на Python мы рассмотрим важнейшую концепцию – инкапсуляцию и управление доступом к данным!
🔸Что такое инкапсуляция?
Инкапсуляция – это механизм объе... | Сетка — социальная сеть от hh.ru