Инкапсуляция в Python

Инкапсуляция в Python - это принцип объектно-ориентированного программирования, который позволяет скрыть внутреннюю реализацию объекта от внешнего доступа и защитить его данные.

Один из способов реализации инкапсуляции в Python - это использование специальных методов, таких как методы getter и setter. Методы getter используются для получения значения закрытого атрибута объекта, а методы setter - для установки значения атрибута. Таким образом, доступ к значениям атрибутов класса осуществляется через методы.

Пример кода:

python
class Person:
    def __init__(self, name, age):
        self._name = name  # приватный атрибут
        self._age = age
    def get_name(self):  # метод getter
        return self._name
    def set_name(self, new_name):  # метод setter
        self._name = new_name
    def get_age(self):  # метод getter
        return self._age
    def set_age(self, new_age):  # метод setter
        if new_age >= 0:  # пример проверки на корректность значения
            self._age = new_age
person = Person("John", 25)
print(person.get_name())  # вывод имени через метод getter
person.set_name("Mike")  # изменение имени через метод setter
print(person.get_name())
person.set_age(-10)  # попытка установки отрицательного значения возраста
print(person.get_age())  # возраст не изменился из-за проверки в методе setter

В данном примере класс Person имеет приватные атрибуты `_name` и `_age`, к которым можно получить доступ только через методы getter и setter. Методы getter (`get_name` и `get_age`) возвращают значения атрибутов, а методы setter (`set_name` и `set_age`) устанавливают значения атрибутов после проверки на корректность. Таким образом, мы можем контролировать доступ к данным объекта и обеспечить их защиту.

Похожие вопросы на: "инкапсуляция в python "

PM2: инструмент для эффективного управления проектами
Ошибка: неверный URL
TGS to GIF Converter - Transform Your Telegram Stickers into Animated Images
Операторы в PHP: что это и как их использовать
Pip TelegramBotAPI: создание Telegram ботов на Python стало проще
PostgreSQL CASE WHEN: синтаксис и примеры использования
PostgreSQL Vacuum – Полное очищение базы данных для эффективной работы
SQL W3Schools: Изучай SQL и базы данных онлайн
<strong>SQL циклы:</strong> основные принципы и практическое применение
<Roblox Cursor