В python я могу добавить метод в класс с декоратором @classmethod
. Есть ли аналогичный декоратор для добавления свойства в класс? Я могу лучше показать, о чем я говорю.
class Example(object):
the_I = 10
def __init__( self ):
self.an_i = 20
@property
def i( self ):
return self.an_i
def inc_i( self ):
self.an_i += 1
# is this even possible?
@classproperty
def I( cls ):
return cls.the_I
@classmethod
def inc_I( cls ):
cls.the_I += 1
e = Example()
assert e.i == 20
e.inc_i()
assert e.i == 21
assert Example.I == 10
Example.inc_I()
assert Example.I == 11
Является ли синтаксис, который я использовал выше, или ему потребуется нечто большее?
Я хочу, чтобы свойства класса были такими, что я могу ленить атрибуты класса нагрузки, которые кажутся достаточно разумными.