本文主要是介绍python中的*args和 **kwargs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsprint '---------------------------------------'if __name__ == '__main__':foo(1,2,3,4)foo(a=1,b=2,c=3)foo(1,2,3,4, 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, 'c': 3, 'b': 2}
---------------------------------------
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args = ('a', 1, None)
kwargs = {'a': 1, 'c': 3, 'b': '2'}
---------------------------------------
这两个是python中的可变参数。*args表示任何多个无名参数,,即直接给出参数值的参数,它是一个tuple;**kwargs表示关键字参数,使用赋值进行的参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。
这篇关于python中的*args和 **kwargs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!