首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在装饰器函数中打印函数的默认参数?

在装饰器函数中打印函数的默认参数可以通过以下步骤实现:

  1. 定义一个装饰器函数,接受被装饰的函数作为参数。
  2. 在装饰器函数内部定义一个新的函数,用于包裹原始函数。
  3. 使用functools.wraps装饰内部函数,以保留原始函数的元数据。
  4. 在内部函数中使用inspect.signature获取原始函数的参数信息。
  5. 遍历参数信息,打印参数名和默认值。

下面是一个示例代码:

代码语言:txt
复制
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: 10c: default,然后继续执行原始函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券