我想了解使用python的getters和setter。我理解的基本思路,但我不能得到它使用屬性裝飾工作,如何在python中使用@property更改屬性?
class f(object):
def __init__(self):
self.de = ['d', 'd']
@property
def d(self):
return self.de
@d.setter
def d(self, value):
self.d = value
f = f()
f.d(1)
當我運行這個我得到一個類型錯誤; 'list object is callable'
'D'在'@ setter'和'de'在構造函數?還要注意,你的'de'是一個列表,所以你想把'value'加到列表中,而不是覆蓋整個列表,或者重命名參數來清楚它是一個新的列表,替換現有的列表。 – Jens
'f.d [1]'會工作 – robyschek