我发现PYTHON新手在理解*args和**kwargs这两个魔法变量的时候有些困难。他们到底是什么呢?
首先,我先告诉大家一件事情,完整地写*args和**kwargs是不必要的,我们可以只写*和**。你也可以写*var和**vars。写*args和**kwargs只是一个大家都遵守的习惯。那现在让我们从*args讲起。
*args的使用
*args和**kwargs允许你在给函数传不定数量的参数。“不定量”意味着你在定义函数的时候不知道调用者会传递几个参数进来。*args能够接收不定量的非关键字参数。下面这个例子能够说明这一点:
这个例子产生的结果为:
这样应该解释得比较清楚了,下面,我们来看**kwargs
**kwargs允许你传递不定量个关键字参数。如果你需要在函数中定义不定量个命名参数,那么你就要**kwargs了。
下面这个例子来演示这种用法
这个例子中我们处理了一些关键字参数。这是**kwargs的基本用法,可以看出**kwargs很有用。接下来让我们说明使用*args和**kwargs来在调用函数时,给函数传递“一个列表的参数”,或者“一个字典的参数”。
使用*args和**kwargs来调用一个函数
下面我们介绍如何使用*args和**kwargs来调用一个函数,假设你有这样一个函数。
下面我们使用*args和**kwargs来给这个函数传递参数,我们可以这样做:
*args和**kwargs以及普通参数的使用顺序
如果你想同时使用这三种参数,那么它们之间的顺序是