在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)