python6.7-函数的不定长参数

📅 2026/7/7 6:59:07 👁️ 阅读次数 📝 编程学习
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)}")