Sobes.tech
Junior — Middle
68

Каково предназначение декоратора @property в Python и каким образом он используется для управления доступом к атрибутам класса?

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

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