当定义函数时,无法预测用户希望传递给函数的参数个数。Python提供了两个特殊格式的参数名称——*args
和**kwargs
——用于告知函数,它应该能够接受任意数目的参数。本次攻略将重点介绍这两个参数的使用方法。
*args
参数
*args
是一个用于传递一个以星号(*)开头的参数,它告诉Python将多个参数传递给函数。下面是*args
参数的使用方法:
def my_function(*args):
for arg in args:
print(arg)
my_function('Hello', 'World', 'Python')
输出:
Hello
World
Python
在这个例子中,可以传递多个参数并使用循环打印它们的值。这个参数可以传递任意数量的参数,包括零个。
**kwargs
参数
**kwargs
是一个类似于*args
的参数,但它允许使用关键字参数。下面是**kwargs
参数的使用方法:
def my_function(**kwargs):
for key, value in kwargs.items():
print("{0} = {1}".format(key, value))
my_function(name='John', age=30, city='New York')
输出:
name = John
age = 30
city = New York
在这个例子中,**kwargs
允许传递任意数量的关键字参数。本例中,name
、age
和city
是函数调用中传递的关键字参数。在函数中,使用for
循环遍历参数字典,以便输出键和值。
*args
和**kwargs
参数同时使用
有时候,需要在一个函数内同时使用这两个参数类型。下面是一个示例,展示了如何在函数中同时使用两个参数:
def my_function(*args, **kwargs):
print("Args:")
for arg in args:
print(arg)
print("Kwargs:")
for key, value in kwargs.items():
print("{0} = {1}".format(key, value))
my_function('Hello', 'World', name='John', age=30, city='New York')
输出:
Args:
Hello
World
Kwargs:
name = John
age = 30
city = New York
注意在这个示例中,*args
和**kwargs
同时被使用,这允许我们接受不特定数目的参数和任意数量的关键字参数。在函数中,我们使用循环遍历这两个参数列表,并输出它们的值。