python中的 *args 和 **kwargs

Posted dbtd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的 *args 和 **kwargs相关的知识,希望对你有一定的参考价值。

如下图所示:

技术分享图片

使用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可以表示任意的长度。

以上是关于python中的 *args 和 **kwargs的主要内容,如果未能解决你的问题,请参考以下文章

*args和**kwargs在python中的作用

Python中的args和kwargs

python中的*args 和**kwargs

Python中的*args和**kwargs

python中的*args和**kwargs

python中的魔法参数:*args和**kwargs