python6.7-函数的不定长参数
不定长参数
介绍:不定长参数也可叫可变参数,用于 函数定义及调用 参数个数不确定(0个或多个)的场景。
类型:
- 位置传递
- 关键字传递
不定长参数——位置传参(*args)
注意:传递的所有匹配的位置参数都会被args变量收集,这些参数会合并封装为一个元组args是元组类型(注意并不会封装关键字参数)。
注意:args只是约定俗成的变量名,并不是关键字,这里可以使用任何合法的变量名(如:*data)
def sum_numbers(*args): total = 0 for num in args: total += num print(f"参数: {args}, 总和: {total}") return total sum_numbers(1, 2, 3) sum_numbers(1, 2, 3, 4, 5)不定长参数——关键字传参(**kwargs)
def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="小明", age=18, city="深圳")注意:参数是以“键=值”形式传递的关键字参数,这些“键=值”参数都会被kwargs接受,并合并封装为一个字典类型
注意:kwargs只是约定俗成的变量名,并不是关键字,这里可以使用任何合法的变量名(如:*options)
混合使用
# ==================== 6. 混合使用 ==================== # 参数顺序: 位置参数 -> 默认参数 -> *args -> **kwargs def func(a, b, c=10, *args, **kwargs): print(f"a={a}, b={b}, c={c}") print(f"args={args}") print(f"kwargs={kwargs}") func(1, 2) #a=1, b=2, c=10 args=() kwargs={} func(1, 2, 3) #a=1, b=2, c=3 args=() kwargs={} func(1, 2, 3, 4, 5) #a=1, b=2, c=3 args=(4, 5) kwargs={} func(1, 2, 3, 4, 5, name="测试", value=100) #a=1, b=2, c=3 args=(4, 5) kwargs={'name': '测试', 'value': 100}参数解包
def add(a, b, c): return a + b + c # 列表/元组解包 (使用 *) nums = [1, 2, 3] print(f"列表解包结果: {add(*nums)}") # 字典解包 (使用 **) params = {"a": 10, "b": 20, "c": 30} print(f"字典解包结果: {add(**params)}")