函数有时可能需要处理的参数个数不确定,这时就需要使用多值参数,该用法多出现于大牛代码中。
Python中有两种多值参数:
-
参数名前增加一个
可以接收元组,一般用*args存放元组参数,args是arguments缩写
-
参数名前增加两个
可以接收字典,一般用**kwargs存放字典参数,kw是keyword缩写
def test(num, *tup, **dict)
print(num)
print(tup)
print(dict)
test(1, 2,3, name="horizon")
输出:
实践演练:
def sum_any(*args):
"""多值参数求和"""
num = 0
print(args)
for k in args:
num += k
return num
result = sum_any(1, 2)
result1 = sum_any(1, 2, 3, 4)
print("%d %d" % (result, result1))
输出:
元组和字典的拆包:(简化参数传递)
# 如果入参是变量,那么多值参数传递遵循拆包语法
def test(*args, **kwargs):
print(args)
print(kwargs)
tup = (1, 2, 3)
dict = {"name"="horizon"}
test(*tup, **dict) # 拆包语法