Метод как свойство объекта в Python
Всё-таки Python красивый язык. Свойство объекта может быть определено как специальный метод экземпляра объекта. Практически это позволяет обращаться к свойству как по имени, так и с помощью метода (getter или setter, или и то и другое в зависимости от операции). Кроме того, такие обращения к методу позволяют при получении и установке свойств выполнять дополнительные операции, например изменять счётчик обращений к свойству объекта.
-
class MyClass(object):
-
def get_a(self):
-
return self._a + 1
-
def set_a(self, value):
-
self._a = value - 1
-
a = property(get_a, set_a, doc="Off by one a")
-
-
# Python 2.6 style
-
class MyClass(object):
-
@property
-
def a(self):
-
return self._a + 1
-
@a.setter #makes the property writeable
-
def a(self, value):
-
self._a = value - 1
