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