我想從字典中導出並覆蓋缺少的方法。我想做一些東西,然後仍然稱它的超級功能。事情是這樣的:如何從字典中調用__missing__
class Foo(dict):
def __missing__(self, key):
print('missing {}'.format(key))
return super().__missing__(key)
然而其產生:
AttributeError: 'super' object has no attribute '__missing__'
當然,我仍然可以使用工作程序:
raise KeyError(key)
但我寧願稱之爲超級功能。因爲除了引發KeyError之外,代碼可能會(或者可能在未來的python版本中)在super().__missing__
中執行。
沒有'字典。__missing__'方法;如果你爲你的dict子類提供了一個'__missing__',你應該自己返回一個值或者提出一個錯誤,而不是試圖將它委託給'dict'。 – user2357112