在装饰器函数中打印函数的默认参数可以通过以下步骤实现:
functools.wraps
装饰内部函数,以保留原始函数的元数据。inspect.signature
获取原始函数的参数信息。下面是一个示例代码:
import functools
import inspect
def print_default_params(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
sig = inspect.signature(func)
params = sig.parameters
for name, param in params.items():
if param.default != inspect.Parameter.empty:
print(f"{name}: {param.default}")
return func(*args, **kwargs)
return wrapper
@print_default_params
def example_func(a, b=10, c="default"):
pass
example_func(1)
在上面的示例中,print_default_params
是装饰器函数,example_func
是被装饰的函数。当调用example_func(1)
时,装饰器函数会打印出b: 10
和c: default
,然后继续执行原始函数。
领取专属 10元无门槛券
手把手带您无忧上云