我试着用
args
和
kwargs
在Python3(Python3.7.0)中,但我的理解遇到了一些问题。
这里有一个简单的函数:
def add_args(y=10, *args, **kwargs):
return y, args, kwargs
并测试它以查看返回的内容:
print(add_args(1, 5, 10, 20, 50))
print(add_args())
>>
(1, (5, 10, 20, 50), {}) # What happened to my default y=10?
(10, (), {})
我不明白的是,发生了什么
y=10
在第一份书面声明中?我可以看到它被
1
在里面
阿尔茨海默病
但我不确定为什么。
如何重写此函数以使默认值不被重写,或者我是否遗漏了一些参数如何从函数签名传递到return语句的内容?
我试着找
here
和
here
但没有找到我想要的答案。我想把默认值放在
阿尔茨海默病
和
关键字参数
将防止覆盖。