python不定长参数详解,python函数不可以传递变长的参数
我们谈了这么多参数,或多或少都会有一些限制。当我在边肖学习时,我发现了一个非常有趣的新参数。它的长度和类型都不固定,非常符合它的名字,也就是变长参数。那么,这些参数在调用函数时有什么区别呢?带着这个问题,我们来学习一下在python中使用变长参数调用函数。
函数的变长参数包括*args和**kwargs。完整的示例如下:
DEF _ PRINT (* args,* * kwargs) 3360 #传递可变长度的参数,即参数个数不固定。
打印(参数)
印刷品(夸脱)
函数_打印()
输出结果:
()
{}代码分析:从输出结果可以看出,第一个参数*args是元组类型,第二个参数**kwargs是字典dict类型。
微软雅黑,Microsoft YaHei; font-size: 14px; mso-spacerun: "yes"; mso-font-kerning: 1.0000pt;">对于任意函数,都可以通过func_name(*args, **kw)的形式来进行调用,其中 args 是一个已经获得的列表或者元组,而 kw 是一个已经获得的字典。列表传入会按顺序对必输参数赋值,多余的参数会当成可变参数传入,而字典传入会根据 key 来匹配所有参数。如:
deftest1(a,b,c=0,*args,**kwargs):print('a=',a,'b=',b,'c=',c,'args=',args,'kw=',kwargs)
deftest2(a,b,c=0,*args,d,**kwargs):
print('a=',a,'b=',b,'c=',c,'d=',d,'args=',args,'kw=',kwargs)
#定义一个元组和字典用作参数传入
args=(1,2,3,4)
kw={'d':99,'x':'#'}
test1(*args,**kw)
#a=1b=2c=3args=(4,)kw={'d':99,'x':'#'}
test2(*args,**kw)
a=1b=2c=3d=99args=(4,)kw={'x':'#'}
注意函数传参的三种形式:
1.普通传参
2.缺省参数,如果外部没有为缺省参数传递实参,形参等于默认值
3.注意不定长参数的拆包,普通实参打包为元组tuple类型,关键字参数打包为字典dict类型
以上就是不定长参数调用函数的方法了,相信小伙伴们都对这种长度、类型不限定的参数非常感兴趣,学会的一起运行代码,看看是否跟小编的结果一致呢~
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。