可变参数
*args 和 **kwargs 是用于在 Python 函数或方法中处理可变数量的参数的特殊语法。
-
*args是用于传递不定数量的位置参数(Positional Arguments)。在函数定义中,*args表示可以接受任意数量的位置参数,并将它们作为一个元组(tuple)传递给函数。调用函数时,可以传递任意数量的位置参数,它们将被打包成一个元组传递给*args。
例如,以下函数接受任意数量的位置参数并将它们相加:
def add_numbers(*args):
total = 0
for num in args:
total += num
return total调用方式示例:
result = add_numbers(1, 2, 3, 4) # result = 10
result = add_numbers(10, 20, 30, 40, 50) # result = 150-
**kwargs是用于传递不定数量的关键字参数(Keyword Arguments)。在函数定义中,**kwargs表示可以接受任意数量的关键字参数,并将它们作为一个字典(dictionary)传递给函数。调用函数时,可以传递任意数量的关键字参数,它们将被打包成一个字典传递给**kwargs。
例如,以下函数接受任意数量的关键字参数并打印它们的键值对:
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")调用方式示例:
print_kwargs(name="John", age=30, city="New York")
# 输出:
# name: John
# age: 30
# city: New York需要注意的是,*args 和 **kwargs 可以与其他参数一起使用,但通常放在参数列表的最后。例如:
def example_func(arg1, arg2, *args, **kwargs):
# 函数体在函数定义中,参数的顺序应为:必需参数,*args,关键字参数,**kwargs。这样,函数可以接受位置参数、不定数量的位置参数、关键字参数以及不定数量的关键字参数。










