def suppress(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception:
pass
return wrapper
def myfunc():
print("foo")
print("foo")
我發現這個代碼在書上,並運行它,它怎麼說的......包裝函數的Python
suppress(myfunc)
書上說這是應該運行的功能,但抑制它的錯誤,這是在print("foo")
相反,它只是給了我一個
<function myfunc at 0x6981e0>
爲什麼???
因爲這就是'壓制'所做的:它需要一個功能併爲您提供另一個功能。如果你想調用這個函數,可以直接調用它:'suppress(myfunc)()'(注意在這個函數末尾加上括號來調用函數) – kindall 2012-03-30 20:26:23