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")
fand ich diesen Code in einem Buch, und es lief, wie es gesagt ...Wrapper Funktion Python
suppress(myfunc)
Das Buch sagte, es sollte die Funktion laufen, aber den Fehler darin zu unterdrücken, das war in print("foo")
Stattdessen es nur mir so gab ...
<function myfunc at 0x6981e0>
Warum ???
Denn das ist es, was "unterdrücken" tut: Es braucht eine Funktion und gibt Ihnen eine andere Funktion. Wenn Sie diese Funktion aufrufen möchten, rufen Sie sie auf: 'suppress (myfunc)()' (beachten Sie zusätzliche Klammern, um die Funktion aufzurufen. – kindall