Сначала определим, что такое геттеры и сеттеры. Геттеры и сеттеры — это специальные методы в объектно-ориентированном программировании, которые позволяют управлять доступом к атрибутам объекта.
Вот как это может выглядеть в классическом стиле:
class MyClass: def __init__(self): self._my_property = 0 def get_property(self): return self._my_property def set_property(self, value): self._my_property = value
В этом примере get_property
и set_property
— это геттер и сеттер соответственно.
Однако в Python есть более «pythonic» способ делать то же самое. Python предоставляет декораторы @property
и @<property_name>.setter
для создания геттеров и сеттеров.
С помощью этих декораторов можно создать методы, которые будут выглядеть и вести себя как обычные атрибуты. Вот как это выглядит на практике:
class MyClass: def __init__(self): self._my_property = 0 @property def my_property(self): return self._my_property @my_property.setter def my_property(self, value): self._my_property = value
Теперь, чтобы получить или установить значение, достаточно обращаться к my_property
как к обычному атрибуту, без вызова метода:
obj = MyClass() obj.my_property = 10 # использование сеттера print(obj.my_property) # использование геттера, выведет: 10
Это делает код более чистым и простым для чтения. Это и есть «pythonic» способ использования геттеров и сеттеров.
Добавить комментарий