Sobes.tech
Back to questions
Junior — Middle
66

В чем заключается назначение декоратора @property в языке Python?

Answer from AI

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)  # Получение через @property
p.name = "Пётр"  # Вызов сеттера
# p.name = ""  # Это вызовет ValueError

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