一般用法:
一个星号代表乘法运算,两个星号代表幂运算。
特殊用法:
星号变量,用在函数的参数传递上。其中,
- 单星号变量 * 代表这个位置接收任意多个非关键字(non-keyword)参数,在函数的单星号变量 *b 位置上将其转化成元组(value1, value2, value3);
- 双星号变量 **b 代表这个位置接收任意多个关键字(key-word)参数,在双星号变量 **b 位置上将其转化为字典{key1:value1, key2:value2}。
示例:
单星号变量:
def one(a, *b):
"""a是一个普通传入参数,*b是一个非关键字星号参数"""
print(b)
one(1,2,3,4) ## (2, 3, 4)
输入可以理解为,one(1, (2, 3, 4)),即*b的位置可以传入任意多没有关键字的参数,*b会将这些传入的参数转换为一个元组。
双星号变量:
def two(a, **b):
"""a是一个普通关键字参数,**b是一个关键字双星号参数"""
print(b)
two(a=1, b=2, c=3, d=4) ## {'b': 2, 'c': 3, 'd': 4}
输入可以理解为,two(a=1, {'b': 2, 'c': 3, 'd': 4}) ,即**b的位置可以传入任意多个关键字参数,**b会将这些传入的参数转换为一个字典。
参考:python学习:python的星号(*)和双星号(**)用法 - Fight boy - 博客园 (cnblogs.com)