property(fget=None, fset=None, fdel=None, doc=None)
Если я вижу вот это:
class C(object):
def getx(self): return self.__x
def setx(self, value): self.__x = value
def delx(self): del self.__x
x = property(getx, setx, delx, "I'm the 'x' property.")
то всё понятно. Но дальше, для меня уже не всё очевидно:
class C:
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
Питон что, сразу пробегает по всему объекту класса в поисках методов, которые он потом рассуёт по fget, fset, дабы они не были None?