我有一個對象,其主要價值在於將給定的裝飾器應用於從超類繼承的每個函數並提供它的單獨版本。僅供參考裝飾低於:定義函數存根enmasse
def hierarchywrapper(func):
def wrapper(self, *args, **kwargs):
for key, value in self.hierarchy.items():
try:
result = getattr(value, func.__name__)(*args, **kwargs)
if result and len(result):
return result
else:
pass
except:
pass
return None
return wrapper
超類包含這個裝飾對象的有相當多的功能,我寧願不寫出來,爲他們每個人的存根。正如你所看到的,這些功能的內容並不是非常重要,只是真的需要存根。
是否有某種方法來定義函數樁?或者,有什麼方法可以表明我只是想將這個裝飾器應用於每個繼承的函數?要做到這一點
我不確定這是否可行,但是您可以使用自定義的__getattr__方法來捕獲不存在的函數調用嗎? – GWW
@GWW嗯......我不太確定,如果我抓住你的漂移。你能提供某種例子嗎? –
@SlaterTyranus請參閱:http://stackoverflow.com/a/2704528/1726343。 –