python函数参数*args **kwargs

Posted mghhz816

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python函数参数*args **kwargs相关的知识,希望对你有一定的参考价值。

毕业多年,把C++都就饭吃了。。。。今天居然在纠结什么是形参什么是实参。。。。。

定义函数里面写的参数就是形参,因为没有内存占用,实际调用时写的参数就是实参,因为有内存占用和传值

然后就是位置参数,可变参数和关键字参数

def foo(a,*b,**c):
    print(a)
    print(b)
    print(c)


if __name__=="__main__":
    foo(1,2,3,4,k=1,g=2)

如上图程序,a,*b,**c这三个是形参,a,*b这两个是位置参数,**c是关键字参数,同时*b,**c这两个是可变参数

1,2,3,4,k=1,g=2这几个是实参,1,2,3,4是位置参数;k=1,g=2是关键字参数;1赋值给a;2,3,4以元组的形式赋值给*b;k=1,g=2以字典的形式付给**c

输出是这样子的

1
(2, 3, 4)
{g: 2, k: 1}

所以fun(*args,**kwargs)中

*args:(表示的就是将实参中按照位置传值,多出来的值都给args,且以元组的方式呈现)

**kwargs:(表示的就是按照关键字把传值以字典的方式呈现)

这里要注意,**kwargs所传的关键字内容可以是值(数值、列表、元组、字典等)可以是函数,也可以是类

以上是关于python函数参数*args **kwargs的主要内容,如果未能解决你的问题,请参考以下文章

Python中的args和kwargs

python函数参数*args **kwargs

Python函数中*args和**kwargs来传递变长参数的用法

python *args 与 **kwargs

21天学习python编程_函数参数,理解 *args和**kwargs

Python3中参数*args和**kwargs介绍