美文网首页pythonpythonpython
python中*args以及**kwargs

python中*args以及**kwargs

作者: 林木酸瓜 | 来源:发表于2019-07-27 10:12 被阅读65次

    首先理解args, 很多方法中都会存在args,那么首先理解一下,它是由* 以及 args组成的。
    * 意思是打包或者拆分参数. args是约定俗成的名字,你起aaa, bbb, ccc ...都可以,只不过为了统一,叫做args。

    来看以下代码:

    def demo(*args):
      print(args)
    
    demo(1, 2, 3, 4)
    # 结果 (1, 2, 3, 4)
    

    由此看出,*是将不限个数的参数打包为一个元组。那么继续看一下拆分功能。

    def demo(a, b, c):
      print(a, b, c)
    
    demo(*[1, 2, 3])
    # 结果 1, 2, 3
    

    就是这么简单,打包功能是定义函数时用到的,而拆分是调用函数时用到的。理解了args, 那么*kwargs就很容易理解了。
    ** 也是有打包以及拆分功能。依然看代码:

    def demo(**kwargs):
      print(kwargs)
    
    demo(a=1, b=2, c=3)
    
    #结果 {'a': 1, 'b': 2, 'c': 3}
    

    将参数打包起来,只不过将参数都打包成了字典。 拆分功能也是如此:

    def demo(a, b, c):
      print(a, b, c)
    
    demo(**{'a': 2, 'b': 3, 'c': 's'})
    
    # 结果 2, 3, 's'
    

    好了,现在大家能理解了吗?

    相关文章

      网友评论

        本文标题:python中*args以及**kwargs

        本文链接:https://www.haomeiwen.com/subject/rwesrctx.html