通過使用應用裝飾器,可以在一個函數的框架中組織類屬性。棄用應用裝飾器
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