Python中不定长参数的基础使用
Python 提供了两种类型的不定长参数:
- *args:用于接收任意数量的位置参数,这些参数会被打包成一个元组 (tuple)
- **kwargs:用于接收任意数量的关键字参数,这些参数会被打包成一个字典 (dict)
1.*args 的使用示例
def sum_numbers(*args):total = 0for num in args:total += numreturn total# 可以传入任意数量的参数
print(sum_numbers(1, 2, 3)) # 输出: 6
print(sum_numbers(10, 20, 30, 40)) # 输出: 100
print(sum_numbers()) # 输出: 0 (空元组)
2.**kwargs 的使用示例
def print_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")# 可以传入任意数量的关键字参数
print_info(name="Alice", age=30, city="New York")
# 输出:
# name: Alice
# age: 30
# city: New York
3.混合使用示例
def mixed_example(name, *args, **kwargs):print(f"Name: {name}")print("Additional arguments:", args)print("Keyword arguments:", kwargs)mixed_example("Bob", 25, "Engineer", city="London", salary=50000)
# 输出:
# Name: Bob
# Additional arguments: (25, "Engineer")
# Keyword arguments: {'city': 'London', 'salary': 50000}
4.注意事项
- 参数定义的顺序必须是:普通参数 → *args → **kwargs
- *args 和 **kwargs 只是约定俗成的名称,我们可以使用其他名称,但建议遵循惯例
- 可以单独使用 *args 或 **kwargs,也可以同时使用
- 当函数调用时,位置参数会优先被普通参数接收,剩下的才会被 *args 接收