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


 

10-04 05:32