新的Python程序员都需要花上大量时间理解清楚args和**kwargs这两个魔法变量。那么它们到底是什么?
先让我告诉你, 其实并不是必须写成args 和kwargs。只有变量前的*(星号)才是必须的. 你也可以写成*var和vars. 或者写成*args和**kwargs只是个通俗的命名约定。
那就让我们先看下*args吧。
*args和**kwargs主要用于函数定义。你可以将不定数量的参数传递给某个函数。
这里的不定的意思是:预先并不知道,函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。
*args是用来发送一个非键值对的可变数量的参数列表给一个函数.
这里有个例子帮你理解这个概念:
输入如下:
**kwargs 的用法:
kwargs 允许你将不定长度的键值对作为参数传递给一个函数。如果你想要在一个函数里处理带名字的参数,你应该使用kwargs。
这里有个让你上手的例子:
以上就是基本用法,下面还有种用法:
用在format函数中:
>>> '{2}, {1}, {0}'.format(*'abc') # unpacking argument sequence
'c, b, a'