开发者

Python中关于 *args与**args的用法及说明

目录
  • 关于 *args与**args的用法
    • *args
    • **kwargs
  • *args和*编程*kwargs是什么意思
    • *args和**kwargs的用途
  • 总结

    关于 *args与**args的用法

    *args 开发者_C入门和 **kwargs主要用于函数定义,你可以将不定数量的参数传递给某个函数。

    *args

    *args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)

    *args是用来发www.devze.com送一个非键值对的可变数量的参数列表给一个函数。

    *args的用法:当传入的参数个数未知,且不需要知道参数名称时。

    代码如下:

    def func_arg(farg, *args):
      print("formal arg:", farg)
      for arg in args:
        print("another arg:", arg)
    func_arg(1,"youzan",'dba','hello')
    
    
    # 输出结果如下:
    # formal arg: 1
    # another arg: youzan
    # another arg: dba
    # another arg: hello

    **kwargs

    **kwargs 传入键值对(例如:num1=11,num2=22)

    **kwargs 允许将不定长度的键值对作为参数传递给一个函数。如果想要在一个函数里处理带名字的参数,应该使用 **kwargs。

    代码如下:

    #利用它转换参数为字典
    def kw_dict(**kwargs):
      return kwargs
    print(kw_dict(a=1,b=2,c=3))
    
    # 输出结果如下:
    # {'a': 1, 'b': 2, 'c': 3}

    *args和**kwargs是什么意思

    去面试的时候,做了一道笔试题——什么是*args和**kwargs,区别在哪里?

    有点蒙,好像见过,但是不知道具体的意思。所以回来查了一下资料,做一下笔记。

    总的来说,*args代表任何多个无名参数,返回的是元组;**kwargs表示关键字参数,所有传入的key=value,返回字典;

    *args和**kwargs的用途

    *args 和 **kwargs 主要用于函数定义, 可以将不定数量的参数传递给一个函数。

    *args 是用来发一个非键值对的可变数量的参数列表给一个函数; kwargs允许将一个不定长度的键值对,作为参数传递给一个函数。如果需要在一个函数中处理带名字的参数时,此时就应该使用kwargshttp://www.devze.com了。

    def test(a,*args,**kwarphpgs):
        print(a)
        print(args)
        print(kwargs)
    test(1,3,5,7,c='2',d=4)
    

    1

    (3, 5, 7)

    {‘c’: ‘2’, ‘d’: 4}

    在test(1,3,5,7,c=‘2’,d=4)中,函数里参数对应的数值为:a=1,*args表示剩下的没有名称的参数,**kwargs表示剩余的键值对。

    def ak(*args,**kwargs):
        print('args=',args)
        print('kwargs=',kwargs)
        print('***************************************')
    if __name__=='__main__':
        ak(2,4,6,8)
        ak(a=2,编程客栈b=4,c=6,d=8)
        ak(2,4,6,8,a=1,b=3,c=5)
        ak('x', 2, None, a=4, b='6', c=8)
        #ak('a', a=1, 1, None, b='2', c=3)

    Python中关于 *args与**args的用法及说明

    同时使用*args和kwargs时,*args参数必须要列在kwargs前,否则会报错。

    ak('a', a=1, 1, None, b='2', c=3)

    File “”, line 1

    ak(‘a’, a=1, 1, None, b=‘2’, c=3)

    ^

    SyntaxError: positional argument follows keyword argument

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜