1 被装饰的函数有参数怎么办?
from functools import wraps
"""
参数传递方式
"""
def logit(func):
@wraps(func)
# 参数传递,影响这儿
def with_logging(*args, **kwargs):
print(func.__name__ + " was called")
return func(*args, **kwargs)
return with_logging
"""
参数传递
"""
@logit
def addition_func(x):
return x + x
result= addition_func(4)
print(result)
小结
新函数with_logging
参数定义为*args, **kwargs
,因为新函数with_logging
的地址空间就是待装饰的函数名addition_func
的新地址。
网友评论