def decorated(f):
@functools.wraps(f)
def wrapper():
return f()
return wrapper
@decorated
def g():
pass
functools.wraps
の名前を保持する役割を果たしますg
:
>>> g.__name__
'g'
しかし、引数を に渡すと、ラッパーの名前を含む がg
得られます。TypeError
>>> g(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: wrapper() takes no arguments (1 given)
この名前はどこから来たのですか?どこに保存されていますか?そして、例外を次のようにする方法はありますg() takes no arguments
か?