在py中,函数的参数传递非常重要,它决定了函数的返回值怎么输出。python比较特殊,它的函数参数不仅可以有固定长度的,还可以有不定长度的。*args和**kwargs就是表示传参是不定长度的。
一、*args和**kwargs是什么?
- *args, **kwargs都是python的可变参数。
- *args可以用来表示任何多个无名参数,本质上是tuple类型。
- **kwargs可以用来表示关键字参数,本质上是dict类型
def func1(*args,**kwargs):
print(type(args))
print(args)
print(type(kwargs))
print(kwargs)
func1(1,2,'hello world',a=4,b=6,c='oo',d=[])
输出:
<class 'tuple'>
(1, 2, 'hello world')
<class 'dict'>
{'a': 4, 'b': 6, 'c': 'oo', 'd': []}
- *args和 **kwargs 重要是前面的*,你也可以写 *var和**vars,而写成 *args和 **kwargs 只是程序员通俗写法
-
运行结果跟上面的使用*args和 **kwargs的一致。def func1(*var,**var2): print(type(var)) print(var) print(type(vars)) print(vars) func1(1,2,'hello world',a=4,b=6,c='oo',d=[]) - *args参数必须在**kwargs前面,因为位置参数必须在关键词参数前面。
Python中*args和**kwargs的使用

最低0.47元/天 解锁文章
1394

被折叠的 条评论
为什么被折叠?



