参数解包 | Python从入门到精通:高阶篇之六

不定长参数 | Python从入门到精通:高阶篇之五

参数解包(拆包)

定义一个函数

def fn4(a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)

fn4(1,2,3)

执行结果:

参数解包 | Python从入门到精通:高阶篇之六

创建一个元组

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)

执行结果:

参数解包 | Python从入门到精通:高阶篇之六

此时可以发现,程序出错了,我们不能这样去chu传递,这样只传递了一个参数,我们可以做如下的修改:

fn4(t[0],t[1],t[2])

执行结果:

参数解包 | Python从入门到精通:高阶篇之六

这样我们就可以实现了,但是我们会发现,有点繁琐,如果参数过多,步骤会一直重复,我们希望可以直接把元组的参数赋值给形参。

fn4(*t) 

执行结果:

参数解包 | Python从入门到精通:高阶篇之六

传递实参时,也可以在序列类型的参数前添加星号,这样他会自动将序列中的元素依次作为参数传递。但是需要注意的是,这里要求序列中元素的个数必须和形参的个数的一致,否则程序会出错。

def fn4(a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)

t = (10,20,30,40)
fn4(*t)

执行结果:

参数解包 | Python从入门到精通:高阶篇之六

创建一个字典
将字典里的项进行参数传递。通过 \*\*来对一个字典进行解包操作

def fn4(a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)

d = {'a':100,'b':200,'c':300}
fn4(**d)

执行结果:

参数解包 | Python从入门到精通:高阶篇之六

以上就是我们对于参数的介绍,之后会通过练习来巩固这部分内容。

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

上一篇:不定长参数 | Python从入门到精通:高阶篇之五


下一篇:认识参数 | Python从入门到精通:高阶篇之二