Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Что делает декоратор @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 улучшает читаемость и безопасность, позволяя добавлять логику к доступу и изменению атрибутов без изменения интерфейса класса.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Python

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

#property

#getter

#setter

#oop

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

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.