在我的一個類中,我有許多屬性在獲取和設置方面做了非常類似的事情。所以,我抽象的參數property
到工廠功能:繼承Python的`屬性`
def property_args(name):
def getter(self):
# do something
return getattr(self, '_' + name)
def setter(self, value)
# do something
setattr(self, '_' + name, value)
return getter, setter
class MyClass(object):
def __init__(self):
self._x = None
x = property(*property_args('x')) # obviously there's more than one of these IRL
但是,因爲我已經發現property
實際上是一個類,繼承它會爲這個完美的。我在文檔中找不到任何解釋我需要重寫的內容(以及__init__
等的參數簽名),並且我並不想在C源代碼中尋找它。有誰知道我在哪裏可以找到這些信息?
作爲參考,C實現可以在這裏找到:http://hg.python.org/cpython/file/tip/Objects/descrobject.c – nneonneo
@nneonneo:謝謝!第1228行的大評論塊就是答案。如果你想在完整的答案中寫出這個,那麼我會接受它。 –
poorsod你可以回答你自己的問題:) –