美文网首页
*args和**kwargs

*args和**kwargs

作者: 追光的焕焕 | 来源:发表于2020-02-27 13:56 被阅读0次

下面我来总结一下它们的作用,它们主要是经常出现在函数定义的函数里面。它们用来接收实际参数的未知变量。简单点来说就是,*args里面存放的是元组, **kwargs里面存放的是字典。

1、*args的用法

def func(age,*args):
    
    print("age is {}".format(age))
    
    #查看args的数据类型
    print(type(args))
    
    for i in args:
        print(i,end = ' ')
func(18,'I','love','you')

代码输出如下:

age is 18
<class 'tuple'>
I love you 

2、**kwargs

**kwargs允许键值对作为函数的参数,可以在函数里面处理键值对。
下面,来举个例子说明:

def func(**kwargs):
    for key,value in kwargs.items():
        print(f'My {key} is {value}')
func(name = 'Tom')

代码输出如下:

My name is Tom

3、使用*args给其他函数传递参数

举个例子:

#定义其他函数
def func(arg1,arg2,arg3,arg4):
    print(arg1)
    print(arg2)
    print(arg3)
    print(arg4)

#赋值元组
args = ('桂林米粉','螺蛳粉','老友粉','肠粉')
func(*args)

代码输出如下:

桂林米粉
螺蛳粉
老友粉
肠粉

4、使用**kwargs给其他函数传递参数

#定义其他函数
def func(arg1,arg2,arg3,arg4):
    print(arg1)
    print(arg2)
    print(arg3)
    print(arg4)
    
#构造字典,键是函数的参数名
kwargs = {'arg1':'非常好吃','arg2':'就是好吃','arg3':'好吃','arg4':'吃吧'}
func(**kwargs)

代码输出如下:

非常好吃
就是好吃
好吃
吃吧

最后要说的一点是,它们里面的args,kwargs可以改变,关键区分点还是在于它前面是一个 *,还是两个 *。

如果在在一个函数里面同时使用的话,注意它们的位置关系:*args在前, **kwargs在后。

相关文章

  • Python中的 *args 和 **kwargs

    1.args 和 kwargs的含义 *args 和 **kwargs经常出现在函数定义中,如: 其中args是参...

  • *args,**kwargs 的另外用途,拆包

    def __init__ (self,*args,**kwargs) 变量名是args和kwargs,不是*arg...

  • 第2模块第1章15函数—非固定参数2

    def func(name,*args,**kwargs) print(name,args,kwargs) 以上是...

  • python函数可变参数

    *args和**kwargs 可以将不定数量的参数传递给函数 *args 和 **kwargs,前者适用于 传入非...

  • *args和**kwargs

    1.*args 输出: 2.kwargs 2.1 合并1 输出: 2.2 合并2 谈一谈python中的魔法变量a...

  • *args 和 **kwargs

    刚开始学习python的时候,一直想弄清楚*args 和 *kwargs这两个变量的具体含义,最后发现,其实arg...

  • *args和**kwargs

    结果: args:函数的自变量kwargs:keyword args 关键字参数如果是在函数调用中* args表示...

  • *args 和** kwargs

    *args是一个元组, *kwargs是一个字典。使用时args系列的参数要在kwargs前面。args接受不是对...

  • *args和**kwargs

    下面我来总结一下它们的作用,它们主要是经常出现在函数定义的函数里面。它们用来接收实际参数的未知变量。简单点来说就是...

  • 1.*args和**kwargs

    1.*args和**kwargs 我发现大多数Python新手很难搞清楚*args和**kwargs这两个魔法变量...

网友评论

      本文标题:*args和**kwargs

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