python中的*args和**kwargs
时间: 2023-04-20 18:03:11 浏览: 138
在Python中,*args和**kwargs是用于传递变长参数的特殊语法。
*args用于传递任意数量的位置参数,其实际上会将这些参数打包成一个元组(tuple)传递给函数。这个元组的名字可以是任意的,但通常使用args来表示。例如:
```
def foo(*args):
for arg in args:
print(arg)
foo(1, 2, 3, 4) # 输出:1 2 3 4
```
**kwargs用于传递任意数量的关键字参数,其实际上会将这些参数打包成一个字典(dict)传递给函数。这个字典的名字可以是任意的,但通常使用kwargs来表示。例如:
```
def bar(**kwargs):
for key, value in kwargs.items():
print(key, value)
bar(a=1, b=2, c=3) # 输出:a 1 b 2 c 3
```
需要注意的是,在一个函数中,*args和**kwargs可以同时使用,但是*args必须出现在**kwargs之前。例如:
```
def foobar(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(key, value)
foobar(1, 2, 3, a=4, b=5) # 输出:1 2 3 a 4 b 5
```
阅读全文