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