可变参数是指在函数调用时,允许向函数传递不定长度的参数,Python中有两种可变参数:args和*kwargs。
使用*args实现可变参数函数
当我们在定义函数时,在形参名前添加,表示可接受不定数量的参数,即args。下面是一个例子:
def add(*args):
total = 0
for num in args:
total += num
return total
print(add(1, 2, 3)) # 6
print(add(1, 2, 3, 4, 5)) # 15
在这个例子中,add函数接受不定个数的参数,并对它们求和,返回结果。我们通过调用add函数,传入多个参数,从而得到不同的结果。
使用**kwargs实现可变参数函数
当我们在定义函数时,在形参名前添加,表示可接受不定数量的关键字参数,即kwargs。下面是一个例子:
def greet(**kwargs):
for key, value in kwargs.items():
print(key + ": " + value)
greet(name="John", age="30", location="New York")
在这个例子中,greet函数接受不定数量的关键字参数,并逐个打印出每个参数的名称和值。我们通过调用greet函数,传入多个关键字参数,从而得到不同的结果。
同时使用args和*kwargs
有时候,我们需要同时使用可变数量的位置参数和关键字参数,这时可以在定义函数时同时使用args和*kwargs。下面是一个例子:
def print_info(name, *args, **kwargs):
print("Name:", name)
print("Args:")
for arg in args:
print("- " + arg)
print("Kwargs:")
for key, value in kwargs.items():
print("- " + key + ": " + value)
print_info("John", "Male", "30", location="New York", hobby="Reading")
在这个例子中,print_info函数除了接受一个名称参数,还可以接受不定数量的位置参数和关键字参数。我们通过调用print_info函数,传入不同数量的位置参数和关键字参数,从而得到不同的结果。