gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:07 25 4
gpt4 key购买 nike

考虑示例:

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__)?

最佳答案

包装器只是一个普通函数。它无法“访问”包装函数的内部结构。

您将不得不使用内省(introspection)来获取它们。查看相关问题:

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

关于Python:将函数参数的默认值传递给 *args 或 **kwargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27210551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com