Sobes.tech
Junior — Middle
99

Можете ли да објасните сврху и коришћење декоратора @property у Python-у?

Компаније где су питане
AstonAston

Одговор од АИ

sobes.tech АИ

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