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

时间:2014-11-30 06:05:42

标签: python python-3.x decorator default-value metaclass

考虑例子:

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__

1 个答案:

答案 0 :(得分:0)

包装器只是一个普通的功能。它没有“访问”包装函数的内部。

你必须使用内省来获得它们。查看相关问题:

How to find out the default values of a particular function's argument in another function in Python?