乐鱼电竞


  • 教育行业A股IPO第一股(股票代码 003032)

    全国咨询/投诉热线:400-618-4000

    Python函数中*args和**kwargs的作用是什么?

    更新时间:2023年02月17日11时23分 来源:乐鱼电竞 浏览次数:

    好口碑IT培训

      *args和**kwargs都适用于函数的定义的。在日常工作中,如果我们不确定函数的参数时候,就可以使用*args和**kwargs去把不定数量的参数传递给一个函数。那么什么叫做不定呢,这里解释为预先并不知道函数的使用者会传递多少个参数,故而,我们一般在这样的场景中使用这两个关键字。

      *args通常被用作发送一个非键值对的可变数量的参数列表给一个函数。*args可以接收任意多个参数并把这些参数作为元组传递给函数。*args以元组的形式传递,是没有key值的。

      **kwargs存储可变的关键字参数,允许使用没有事先定义的参数名,将接收到任意多个关键字参数作为字典传递给函数。**kwargs是以字典的形式传递,有key值。

      这里需要强调的是,函数的参数的顺序:*args必须在**kwargs前面,调用函数传递参数也必须依照这个顺序。

      (1)*args示例

    def demo(args_f,*args_v):
        print(args_f)
        for x in args_v:
            print(x,end=")
    
    demo(1,'a','b','c','d')

      运行结果

       1
      Abcd

      再例如:

    def function(x,y,*args):
        print(x,y,args)
    function(1,2,3,4,5)

      运行结果:

    12(3,4,5)

      说明传递给函数的是一个元组。

      (2)**kwargs示例

    def demo(**args_v):
        for k,in args_v.items():
            print(k,v)
    
    demo(name='1hr')

      运行结果:

    name 1hr

      再例如:

    def function(**kwargs):
        print(kwargs,type(kwargs))
    
    function(a=2)

      运行结果

    {'a':2}  <class 'dict'>

      需要注意的是,参数arg、*args、**kwargs三个参数的位置是确定的。必须是“(arg,*args,**kwargs)”这个顺序,否则程序会报错。

    def function(args,*args,**kwargs):
        print(args,args,kwargs)
    function(6,7,8,9,a=1,b=2,c=3)

      运行结果:

    6(7,8,9){'a':1,'b':2,'c':3}

    0 分享到:
    和我们在线交谈!
    【网站地图】【sitemap】