Sobes.tech
Back to questions
Junior — Middle
65

Какие альтернативные способы реализации геттеров и сеттеров в Python вместо использования декоратора @property?

Answer from AI

sobes.tech AI

В Python помимо использования декоратора @property для создания геттеров и сеттеров, можно реализовать их с помощью классических методов или использовать функцию property() напрямую.

  1. Классические методы 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")
  1. Использование функции 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() позволяет создавать свойства без использования декораторов, а классические методы дают явный интерфейс для доступа к атрибутам.