参数中*和**的作用

@TOC

参数中*以及**的作用

参考链接

*在这里代表的不是指针,在函数调用的时候使用,可以更方便的传入list, dictionary等参数

  • 使用单个*会将所有的参数放入一个tuple供函数使用
  • 使用两个**会将所有参数放入一个dict供函数使用

单个*

  1. 传入一个或多个数字

注意这里有几个数字会输出==几次==
传入的参数会被视为tuple类型,len=传入参数个数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def foo(*args):
for a in args:
print(a)

foo(1)
foo(1,2,3)
'''
foo(1):
1
foo(1,2,3):
1
2
3
'''

  1. 传入一个list

这里输出列表的时候只输出==一次==
传入的参数会被视为tuple类型,len=传入list个数

1
2
3
4
5
6
7
8
x = [1, 2, 3]
foo(x)
x = tuple(x)
foo(x)
'''
[1, 2, 3]
(1, 2, 3)
'''

两个**

输入会被当做字典dict来使用

1
2
3
4
5
6
7
8
9
10
def foo(**args):
for x in args:
print(x, args[x])

foo(a="Ass", b="We", c="Can")
'''
a Ass
b We
c Can
'''