我試圖實現一個簡單的模型類,該類在類中設置屬性時執行回調,但是在嘗試在我的應用程序中使用此屬性時出現AttributeError。看起來這個實例沒有我在初始化程序中設置的屬性,我爲什麼會有點困惑。我沒有用魔術方法很多,所以一些闡述可能會有所幫助:Python模型回調
class ReportModel(object):
def __init__(self):
self.current_date = None
self.prior_date = None
self._callbacks = defaultdict([])
def __setattr__(self, attr, value):
object.__setattr__(self, attr, value)
for func in self._callbacks[attr]:
func(value)
def set_callback(self, attr, function):
self._callbacks[attr].append(function)
回溯:
AttributeError: 'ReportModel' object has no attribute '_callbacks'
想你的落實,我得到一個類型錯誤:文件「C:\ FAST \工作區\ FIMOApp \ SRC \ fimoapp \ models.py「,第12行,在__init__ object .__ setattr __(self,'_callbacks',defaultdict([])) TypeError:第一個參數必須可調用 – donopj2
Woops - 它的defaultdict, – donopj2