Sobes.tech
Junior — Middle
72

Могли бы вы объяснить назначение и использование декоратора @property в Python?

Компании, где спрашивали
AstonAston

Ответ от нейросети

sobes.tech AI

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

Пример:

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        if not value:
            raise ValueError("Имя не может быть пустым")
        self._name = value

p = Person("Иван")
print(p.name)  # обращение как к атрибуту
p.name = "Пётр"  # вызов сеттера

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