【python】函数参数前加*星号的含义
描述
加一个*星号:表示参数数量不确定,将传入的参数存储为元组。
加两个*星号:表示参数数量不确定且参数类型是关键字参数,将传入的参数存储为字典。
示例
加一个*星号:
def main(*args):
print(args)
main(1, 2)
'''out
(1, 2)
'''
加两个*星号:
def main(**kwargs):
print(kwargs)
main(a=1, b=2)
'''out
{'a': 1, 'b': 2}
'''
拓展
此外,还有一种常见的*星号用法:
def main(arg1, *, arg2):
print(arg1, arg2)
main(1, arg2=2)
这里的*表示占位符,星号前面的参数可以指定参数名赋值,也可以直接赋值;但星号后面的参数是关键字参数,必须指定参数名赋值。
参考
https://www.python.org/dev/peps/pep-0612/#using-list-variadics-and-map-variadics