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