Sobes.tech
Back to questions
Junior — Middle
67

Каким образом можно определить атрибуты класса как свойства при помощи метода property?

Answer from AI

sobes.tech AI

В Python метод property позволяет определить методы доступа к атрибутам класса так, чтобы обращаться к ним как к обычным свойствам, но при этом выполнять дополнительную логику при чтении, записи или удалении значения.

Пример использования:

class Person:
    def __init__(self, name):
        self._name = name  # внутренний атрибут

    @property
    def name(self):
        # геттер — вызывается при обращении к person.name
        return self._name

    @name.setter
    def name(self, value):
        # сеттер — вызывается при присвоении person.name = value
        if not isinstance(value, str):
            raise ValueError("Имя должно быть строкой")
        self._name = value

    @name.deleter
    def name(self):
        # делитер — вызывается при del person.name
        del self._name

p = Person("Иван")
print(p.name)  # Иван
p.name = "Пётр"  # сработает сеттер
print(p.name)  # Пётр

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