Py学习  »  Python

如何跳过python中*args之前的默认参数[duplicate]

Santhi Batchu • 5 年前 • 2028 次点击  

我试着用 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 但没有找到我想要的答案。我想把默认值放在 阿尔茨海默病 关键字参数 将防止覆盖。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39674
 
2028 次点击  
文章 [ 2 ]  |  最新文章 5 年前