Sobes.tech
Back to questions
Junior — Middle
82

Можете объяснить, что представляет собой декоратор property в Python и как он используется?

Companies where asked
WINKWINK

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("Name cannot be empty")
        self._name = value

p = Person("Alice")
print(p.name)  # вызовет метод name()
p.name = "Bob"  # вызовет setter

Здесь name — свойство, при чтении вызывается метод с декоратором @property, при записи — метод с @name.setter. Это позволяет контролировать доступ к внутреннему атрибуту _name.