Встречается на собеседованиях • сегодня

Что используется внутри @property в Python

Декоратор @property в Python создаёт геттер для атрибута класса. Под капотом он использует дескрипторы — специальный протокол с методами __get__, __set__, __delete__.

Пример:

python
class Circle:
    def __init__(self, radius):
        self._radius = radius
text
@property
def radius(self):
    print("Getting radius")
    return self._radius

@radius.setter
def radius(self, value):
    print("Setting radius")
    self._radius = value
text

При обращении к `circle.radius` вызывается геттер, а при присваивании `circle.radius = 5` — сеттер. Если сеттер не определён, свойство становится read-only.  

Дескриптор `property` автоматически вызывает соответствующий метод (`fget`, `fset`, `fdel`), переданный при его создании. Это реализовано через протокол дескрипторов в Python.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы