定义支持多值参数的函数
有时候可能需要一个函数能够处理的参数个数是不确定的,这个时候就可以使用多值参数
python中有两种多值参数:
1.参数名前增加一个 * 可以接收元组
2.参数名前增加两个 * 可以接收字典
多值参数的应用会经常出现在网络上一些大牛开发的框架中,知道多值参数,有利于我们能够读懂大牛的代码
def demo(num, *nums, **person):
print(num)
print(nums)
print(person)
# demo(1)
demo(1, 2, 3, 4, 5, name="小明", age=18)
一般在给多值参数命名时,习惯使用以下两个名字
*args | 存放元组的参数,前面有一个星号 |
---|---|
**kwargs | 存放字典的参数,前面有两个星号 |
def sum_numbers(*args):
# def sum_numbers(args):
num = 0
print(args)
# 循环遍历(遍历arges元组顺序求和)
for n in args:
num += n
return num
result = sum_numbers(1, 2, 3, 4, 5)
print(result)
运行结果
(1, 2, 3, 4, 5)
15
元组和字典的拆包*
在调用多个多值参数的函数时,如果希望:
将一个元组变量,直接传递给args
将一个字典变量,直接传递给kwargs
就可以使用拆包,简化参数的传递,拆包的方式是:
在元组变量前增加一个*
在字典变量前增加两个*
def demo(*args, **kwargs):
print(args)
print(kwargs)
# 元组变量/字典变量
gl_nums = (1, 2, 3)
gl_dict = {"name": "小明", "age": 18}
# demo(gl_nums, gl_dict)
# 拆包语法,简化元组变量/字典变量的传递
demo(*gl_nums, **gl_dict)
运行结果
(1, 2, 3)
{'name': '小明', 'age': 18}