在Python中,星号除了用于乘法数值运算和幂运算外,还有一种特殊的用法"在变量前添加单个星号或两个星号",实现多参数的传入或变量的拆解,本文将详细介绍"星号参数"的用法。
# 什么是星号变量(*)
最初,星号变量是用在函数的参数传递上的,在下面的实例中,单个星号代表这个位置接收任意多个非关键字参数,在函数的*b位置上将其转化成元组,而双星号代表这个位置接收任意多个关键字参数,在**b位置上将其转化成字典:
* 该位置接受任意多个非关键字(non-keyword)参数,在函数中将其转化为元组(1,2,3,4)
** 该位置接受任意多个关键字(keyword)参数,在函数**位置上转化为词典 [key:value, key:value ]
#打包成字典格式
def a(**b):print(b)
#打包成元组
def b(*a):print(a)
#拆包
def c(a,b,c):print(c)if __name__ == '__main__':"""*和** 作用在 实参中可以打包传参的作用*和** 作用在 形参中可以解包接受参数"""list1 = [1,2,3]set1 = {1,2,3,4}str1 = "asdfasd"tuple1 = (1,2,3)dict1 = {"a":1,"b":2,"c":3}b(set1)a(a=1,b=2,c=4)#(*)可以拆包 列表,元组,字符串,集合,字典c(*list1)#(**)可以拆包字典c(**dict1)