Sobes.tech
Junior — Middle
97

Μπορείτε να εξηγήσετε τον σκοπό και τη χρήση του διακοσμητή @property στην Python;

Εταιρείες όπου ρωτήθηκαν
AstonAston

Απάντηση από 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)  # обращение как к атрибуту
p.name = "Пётр"  # вызов сеттера

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