Что делает декоратор @property?

Этот вопрос проверяет знание декоратора @property, который используется для создания методов-доступов (геттеров и сеттеров) в Python.

Короткий ответ

Декоратор @property превращает метод класса в атрибут, который можно получить или установить через стандартный синтаксис атрибутов. Это удобно для контроля доступа к данным и обеспечения инкапсуляции.

Длинный ответ

С помощью @property можно создать геттеры и сеттеры, сохраняя синтаксис работы с атрибутами. Геттер определяется декоратором @property, а сеттер — через одноимённый метод с декоратором @<имя_геттера>.setter.

 

Пример:

class Circle:
    def __init__(self, radius):
        self._radius = radius

    @property
    def radius(self):
        return self._radius

    @radius.setter
    def radius(self, value):
        if value > 0:
            self._radius = value
        else:
            raise ValueError("Радиус должен быть положительным")

circle = Circle(5)
print(circle.radius)  # 5
circle.radius = 10    # Установка нового значения
print(circle.radius)  # 10
# circle.radius = -1  # Ошибка: ValueError

Использование @property улучшает читаемость и безопасность, позволяя добавлять логику к доступу и изменению атрибутов без изменения интерфейса класса.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Python

Ключевые слова

Подпишись на Python Developer в телеграм