Back to questions
Junior — Middle
65
Какие альтернативные способы реализации геттеров и сеттеров в Python вместо использования декоратора @property?
Answer from AI
sobes.tech AI
В Python помимо использования декоратора @property для создания геттеров и сеттеров, можно реализовать их с помощью классических методов или использовать функцию property() напрямую.
- Классические методы get/set:
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
return self._name
def set_name(self, value):
self._name = value
p = Person("Alice")
print(p.get_name())
p.set_name("Bob")
- Использование функции
property():
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
return self._name
def set_name(self, value):
self._name = value
name = property(get_name, set_name)
p = Person("Alice")
print(p.name) # вызовет get_name
p.name = "Bob" # вызовет set_name
Таким образом, property() позволяет создавать свойства без использования декораторов, а классические методы дают явный интерфейс для доступа к атрибутам.