Python中多值参数通过args和kwargs实现,args接收任意位置参数并组成元组,kwargs接收任意关键字参数并组成字典,二者可结合普通参数和默认参数使用,但需遵循参数顺序:普通→默认→args→*kwargs,提升函数灵活性与通用性。

Python中的多值参数指的是函数可以接收任意数量的参数。这种机制让函数在调用时更加灵活,适用于不确定传入参数个数的场景。实现多值参数主要通过两种形式:*args 和 **kwargs,它们分别处理位置参数和关键字参数。
使用 *args 接收任意位置参数
在函数定义中,形参前加一个星号 *,比如 *args,可以收集所有传入的额外位置参数,组成一个元组。
- args 是约定俗成的名字,实际可以用任何合法变量名
- 传入的参数在函数内部以元组形式访问
- 适合处理不需要参数名、只关心值的场景
示例:
def print_numbers(*args):
for num in args:
print(num)
print_numbers(1, 2, 3, 4) # 输出 1 2 3 4
使用 **kwargs 接收任意关键字参数
两个星号 ** 用于收集未在函数定义中明确列出的关键字参数,将其打包为一个字典。
立即学习“Python免费学习笔记(深入)”;
- kwargs 也是习惯命名,可替换为其他名字
- 所有传入的 keyword=value 形式的参数会被放入字典
- 适合处理配置类、选项类参数
示例:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=25, city="Beijing")
输出 name: Alice, age: 25, city: Beijing
组合使用多种参数类型
Python允许将普通参数、*args 和 **kwargs 同时使用,但必须遵守顺序:普通参数 → 默认参数 → *args → **kwargs。
示例:
def func(a, b, *args, c=10, **kwargs):
print("a:", a)
print("b:", b)
print("args:", args)
print("c:", c)
print("kwargs:", kwargs)
func(1, 2, 3, 4, c=99, name="Tom", age=30)
输出结果会按结构清晰展示各类参数的接收情况。
基本上就这些。多值参数提升了函数的通用性,是写灵活接口的重要手段。











