gpt4 book ai didi

python - 函数签名中变量名前的 * 和 ** 是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 21:45:24 25 4
gpt4 key购买 nike

Possible Duplicate:
Understanding kwargs in Python

看过一段python代码,不知道这段代码中*和**是什么意思:

def functionA(self, *a, **kw):
// code here

我只知道 * 的一种用法:提取它对方法或构造函数的参数所具有的所有属性。

如果上述功能为真,那么其余的:** 是什么?

最佳答案

函数头内:

* 将所有位置参数收集在一个元组中。

** 收集字典中的所有关键字参数。

>>> def functionA(*a, **kw):
print(a)
print(kw)


>>> functionA(1, 2, 3, 4, 5, 6, a=2, b=3, c=5)
(1, 2, 3, 4, 5, 6)
{'a': 2, 'c': 5, 'b': 3}

函数调用中:

* 将列表或元组解包到位置参数中。

** 将字典解压缩为关键字参数。

>>> lis=[1, 2, 3, 4]
>>> dic={'a': 10, 'b':20}
>>> functionA(*lis, **dic) #it is similar to functionA(1, 2, 3, 4, a=10, b=20)
(1, 2, 3, 4)
{'a': 10, 'b': 20}

关于python - 函数签名中变量名前的 * 和 ** 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315010/

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