一般用法:

一个星号代表乘法运算,两个星号代表幂运算。

特殊用法:

星号变量,用在函数的参数传递上。其中,

  1. 单星号变量 * 代表这个位置接收任意多个非关键字(non-keyword)参数,在函数的单星号变量 *b 位置上将其转化成元组(value1, value2, value3)
  2. 双星号变量 **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会将这些传入的参数转换为一个字典。