python中的*args和**kwargs
程序员文章站
2022-04-28 15:11:17
python支持可变参数:可以使用 args、 kwargs实现 args是可变的positional arguments列表,是一个tuple。 kwargs是可变的keyword arguments列表,是一个dict。 args必须位于 \ \ kwargs之前 ,因为positional a ......
python支持可变参数:可以使用*args、**kwargs实现
- *args是可变的positional arguments列表,是一个tuple。
- **kwargs是可变的keyword arguments列表,是一个dict。
- *args必须位于 **kwargs之前,因为positional arguments必须位于keyword arguments之前。
*args、**kwargs的使用:
- 函数定义:是一个将参数pack的过程
- 函数调用:将参数unpack
例子:
def foo(*args, **kwargs): print("args:") print(args) print("kwargs:") print(kwargs) foo(1, 2, 3, 4) foo(a=1, b=2, c=3) foo("a", 1, none, a=1, b=2, c=3)
运行结果:
args: (1, 2, 3, 4) kwargs: {} args: () kwargs: {'a': 1, 'b': 2, 'c': 3} args: ('a', 1, none) kwargs: {'a': 1, 'b': 2, 'c': 3}