通过使用应用装饰器,可以在一个函数的框架中组织类属性。弃用应用装饰器
class Example(object):
@apply
def myattr():
doc = """This is the doc string."""
def fget(self):
return self._half * 2
def fset(self, value):
self._half = value/2
def fdel(self):
del self._half
return property(**locals())
但现在申请已被弃用。
有没有可能实现这样的属性的简单性和可读性,新的,而不是“扩展调用语法”?
我的做法是一样的阿努拉格的,但是,我现在不女巫一个是更好的,请看:
def prop(f):
return property(**f())
class A(object):
@prop
def myattr():
def fget(self):
return self._myattr
def fset(self, value):
self._myattr = value
return locals()
我不知道这一点,我非常喜欢它。上面的'应用'魔法是如此难以理解,我不太清楚这个问题是关于什么的。 我知道@property并使用它很多,但.setter和.deleter对我来说是新的并且看起来很棒(自编档案代码:) :) – 2010-03-04 09:18:07
你在getter的参数中缺少自我,不是吗? – 2011-02-20 03:27:52
@大卫:正确,固定,ta。 – bobince 2011-02-26 09:41:53