码迷,mamicode.com
首页 > 编程语言 > 详细

python 点滴记录11:函数参数的收集

时间:2015-06-01 20:35:40      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:python

8python中,当在不确定给函数传递参数的个数时,可以使用*args和**kargs形式(args、kargs可以使用其他名称定义)。

一、*args形式

eg1:

def func(x,*a):
        print x
        print a
        
func(1,2,3,4,5)

调用函数后结果为:

1
(2, 3, 4, 5)

从过结果可看出,在使用*a后,当给函数传递多个参数时,函数会将第一个实参传递给第一个型参,然后将剩下的实参传递给了*a,而*a将剩下的参数放在了一个元组中。

如果函数中定义了(x,*a),而传递参数的时候,只传了一个实参,那么*a将会生成一个空的元组。

eg2:

def func(x,*a):
        print x
        print a
        
func(1)

调用函数后结果为:

1
()

从结果可以看出,参数1传给了x,而*a生成了一个空的元组。

需要注意的是,当元素中只有一个元素时,该元素后面需要加一个“,”

eg3:

def func(x,*a):
        print x
        print a
        
func(1,2)

调用函数后结果为:

1
(2,)

元组里面只有一个元素2,后面还有一个“,”。

二、*kargs形式

*kargs形式会将接收到的参数存在一个字典中,因此,在传递参数时,需要以键值队的形式。

eg1:

def func(i,**a):
        print a
        print i
        
func(3,x=4)

执行结果为:

{‘x‘: 4}
3

注意参数传递的方式:x=4

python 点滴记录11:函数参数的收集

标签:python

原文地址:http://ahaii.blog.51cto.com/1695127/1657269

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!