Python:将函数参数的默认值传递给* args或** kwargs

用户名

考虑示例:

def decorator(func):
    def wrapper(*args, **kwargs):
        print(args, kwargs)
        func(*args, **kwargs)
    return wrapper

@decorator
def foo(x, y, z=0):
    pass

foo(5, 5)

输出:

(5, 5) {}

为什么不(5, 5) {'z': 0}呢?如何传递给函数的所有默认值foo*args或者**kwargs只使用装饰(用于函数)或元类(类方法,例如__init__)?

失眠的人

包装器只是一个正常功能。它不能“访问”包装函数的内部。

您将不得不使用内省来获取它们。看到一个相关的问题:

如何在Python的另一个函数中找出特定函数自变量的默认值?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章