如下图所示:
使用ipython查看一个函数怎么使用的时候,经常遇见函数的参数里面带有 *args 和 **kwargs ,那么这两个参数到底是什么意思呢?下面以一个实例看一下:
def test_args(*args, **kwargs): print ‘args=‘, args print ‘kwargs=‘, kwargs print ‘**************************‘ if __name__ == ‘__main__‘: test_args(1, 2, 3) test_args(‘hello‘, ‘python‘) test_args(name=‘xiaoming‘, age=21, sex=‘male‘) test_args(name=‘xiaoming‘) test_args(1, 2, 3, name=‘xiaoming‘, age=21, sex=‘male‘)
输出结果如下:
args= (1, 2, 3) kwargs= {} ************************** args= (‘hello‘, ‘python‘) kwargs= {} ************************** args= () kwargs= {‘age‘: 21, ‘name‘: ‘xiaoming‘, ‘sex‘: ‘male‘} ************************** args= () kwargs= {‘name‘: ‘xiaoming‘} ************************** args= (1, 2, 3) kwargs= {‘age‘: 21, ‘name‘: ‘xiaoming‘, ‘sex‘: ‘male‘} **************************
从上面的测试结果可以看出,*args表示任何多个无名参数,它是一个数组tuple;**kwargs表示关键字参数,它是一个字典dict。*args和**kwargs可以表示任意的长度。