我正在尋找一種方法來定義類似於C#的Python中的屬性,並帶有嵌套的get/set定義。
這是多遠我得到:python中的C#樣式屬性
#### definition ####
def Prop(fcn):
f = fcn()
return property(f['get'], f['set'])
#### test ####
class Example(object):
@Prop
def myattr():
def get(self):
return self._value
def set(self, value):
self._value = value
return locals() # <- how to get rid of this?
e = Example()
e.myattr = 'somevalue'
print e.myattr
這裏的問題是,它仍然需要定義爲「恢復當地人()」。
有沒有辦法擺脫它?
也許用嵌套裝飾器?
也許我沒有得到什麼,但爲什麼是經典的'myattr = property(fget = get_value,fset = set_value)'還不夠? – Almad 2010-05-15 19:25:26