不定长参数 | Python从入门到精通:高阶篇之五
参数解包(拆包)
定义一个函数
def fn4(a,b,c):
print('a =',a)
print('b =',b)
print('c =',c)
fn4(1,2,3)
执行结果:
创建一个元组
t = (10,20,30)
此时我们想要把t中的元素传进函数,应该怎么做呢?
def fn4(a,b,c):
print('a =',a)
print('b =',b)
print('c =',c)
t = (10,20,30)
fn4(t)
执行结果:
此时可以发现,程序出错了,我们不能这样去chu传递,这样只传递了一个参数,我们可以做如下的修改:
fn4(t[0],t[1],t[2])
执行结果:
这样我们就可以实现了,但是我们会发现,有点繁琐,如果参数过多,步骤会一直重复,我们希望可以直接把元组的参数赋值给形参。
fn4(*t)
执行结果:
传递实参时,也可以在序列类型的参数前添加星号,这样他会自动将序列中的元素依次作为参数传递。但是需要注意的是,这里要求序列中元素的个数必须和形参的个数的一致,否则程序会出错。
def fn4(a,b,c):
print('a =',a)
print('b =',b)
print('c =',c)
t = (10,20,30,40)
fn4(*t)
执行结果:
创建一个字典
将字典里的项进行参数传递。通过 \*\*
来对一个字典进行解包操作
def fn4(a,b,c):
print('a =',a)
print('b =',b)
print('c =',c)
d = {'a':100,'b':200,'c':300}
fn4(**d)
执行结果:
以上就是我们对于参数的介绍,之后会通过练习来巩固这部分内容。
配套视频课程,点击这里查看
获取更多资源请订阅Python学习站