ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

Python函数中*args和**kwargs的作用是什么? 适用于函数定义的是*args和**, 在日常工作里, 当不确定函数参数时就能用*args和**传递不定数量参数给函数。什么叫不定呢, 在此解释为先并不知道函数使用者会传多少参数, 所以, 一般在这样的场景中用这两个关键字。*args常常被用来将一个并非键值对的、拥有可变数量的参数列表发送给一个函数, *args能够接收任意数量的参数, 而且会把这些参数当作元组传递给函数, *args是以元组的形式进行传递, 乃是不存在key值的。存储那种可变的关键字参数, 要允许去运用没有在前定义的那些参数名,针对该情况来说的话, 会把收到的任意数量之关键字参数当作字典传递给该函数, 是以字典那种特定形式去传递的, 并且是存在key值这样子的情况的。需要在此着重指出的是, 关于函数参数的顺序, 即: *args务必处于**之前, 并且在调用函数去传递参数时, 亦必定要按照这个顺序来进行。(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)**示例def demo(**args_v): for k,in args_v.items(): print(k,v) demo(name1hr)运行结果name 1hr再例如def function(**kwargs): print(kwargs,type(kwargs)) function(a2)运行结果{a:2}要留意的是, 参数arg、*args、**这三个参数的位置是固定的呀, 必定得是“(arg,*args,**)”的这般顺序, 不然程序将会报错的。def function(args,*args,**kwargs): print(args,args,kwargs) function(6,7,8,9,a1,b2,c3)运行结果6(7,8,9){a:1,b:2,c:3}
返回列表