python的函数中,有时会有类似*args,**keys这样的参数,代表的是可变参数,一个*表示元祖,两个*表示字典,就是说这个函数可以接受任何类型的参数,都不会报错,有些函数为了提高可用性,会加这样的参数描述,防止调用者传入不同类型的参数而报错
#encoding=utf-8
def fun(a,b=100,*args,**keys):
print "args type=%s"%type(args)
print "args=%s"%str(args)
print "keys type=%s"%type(keys)
print "keys=%s"%str(keys)
print "name=%s"%str(keys['name'])
print "sex=%s"%str(keys['sex'])
sum=0
for i in args:
sum+=i
print sum+a+b
fun(1,2,3,4,name='vip',age=19,sex='m')
结果: