📅  最后修改于: 2023-12-03 15:04:29.896000             🧑  作者: Mango
在Python中,*args
和 **kwargs
是非常常见的两个关键词。它们允许我们在函数调用的时候传递任意数量的参数。
*args
主要用于传递一个可变数量的参数列表给一个函数。这个参数列表存放在一个元组中。
下面是一个例子:
def my_function(*args):
for arg in args:
print(arg)
my_function("Hello", "World", "!")
输出如下:
Hello
World
!
在上述例子中,我们传递了三个参数到函数my_function
中,这三个参数被打包成了一个元组args
。
*args
可以和其他参数一起使用,但是必须放在参数列表的最后。例如:
def my_function(name, age, *args):
print(name)
print(age)
for arg in args:
print(arg)
my_function("Alice", 23, "Hello", "World", "!")
输出如下:
Alice
23
Hello
World
!
注意,在这个例子中,我们首先传递了两个参数 name
和 age
,然后传递了一个可变数量的参数列表 args
。
**kwargs
允许我们传递一个可变数量的关键字参数给一个函数。这个参数列表存放在一个字典中。
下面是一个例子:
def my_function(**kwargs):
for key, value in kwargs.items():
print(key, value)
my_function(name="Alice", age=23, city="New York")
输出如下:
name Alice
age 23
city New York
在上述例子中,我们传递了三个关键字参数到函数 my_function
中,这些参数被打包成了一个字典 kwargs
。
与 *args
相似,**kwargs
可以和其他参数一起使用,但是必须放在参数列表的最后。例如:
def my_function(name, age, **kwargs):
print(name)
print(age)
for key, value in kwargs.items():
print(key, value)
my_function("Alice", 23, city="New York", country="USA")
输出如下:
Alice
23
city New York
country USA
在这个例子中,我们首先传递了两个参数 name
和 age
,然后传递了一个可变数量的关键字参数列表 kwargs
。
总结:
*args
用于传递可变数量的位置参数到一个函数中,这些参数被打包成一个元组。必须在参数列表的最后。**kwargs
用于传递可变数量的关键字参数到一个函数中,这些参数被打包成一个字典。必须在参数列表的最后。*args
和 **kwargs
可以和其他参数一起使用,但是必须放在参数列表的最后。