当前位置: 首页 > 图灵资讯 > 行业资讯> python不定长参数如何调用函数?

python不定长参数如何调用函数?

来源:图灵python
时间: 2024-10-09 18:21:04

我们讲了这么多的参数,多多少少都会有一些限制的地方。小编在学习的时候,发现了一个新的参数很有意思,在长度、类型上没有进行固定,跟它的名字非常相符,那就是不定长参数。那么这类参数在调用函数上会有什么不同吗?带着这个问题,我们一起来学习在python中使用不定长参数调用函数。

函数的不定长参数包含*args和**kwargs,完整实例如下:

deffunction_print(*args,**kwargs):#传递不定长参数,即参数个数不固定
print(args)
print(kwargs)

function_print()

输出结果:

()
{}

代码分析:由输出结果可以看出来,第一个形参*args 是元组tuple类型,第二个形参**kwargs是字典dict类型。

对于任意函数,都可以通过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类型

以上就是不定长参数调用函数的方法了,相信小伙伴们都对这种长度、类型不限定的参数非常感兴趣,学会的一起运行代码,看看是否跟小编的结果一致呢~