【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

原文地址:https://www.cnblogs.com/ghgxj/p/14219038.html