当我们需要定义一个函数,但是不确定会传入多少个参数时,可以使用 *args
和 **kwargs
。
args
的使用情况:当函数的参数数量是不确定的时候,可以使用
args
来接收任意数量的位置参数,并将它们存储在一个元组中。示例:
def add(*args): total = 0 for num in args: total += num return total
*kwargs
的使用情况:当函数的参数是带有关键字的时候,可以使用
*kwargs
来接收任意数量的关键字参数,并将它们存储在一个字典中。示例:
def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}")
同时使用
args
和*kwargs
的情况:当函数的参数既不确定数量又带有关键字时,可以同时使用
args
和*kwargs
。示例:
def process_data(title, *args, **kwargs): print(f"=== {title} ===") for item in args: print(item) for key, value in kwargs.items(): print(f"{key}: {value}")
综上所述,*args
用于处理不确定数量的位置参数,而 **kwargs
用于处理不确定数量的关键字参数。当两者一起使用时,可以应对各种不确定数量和属性的参数情况。