#定义默认参数 #定义默认参数为空 def plus(l=None): if l is None: l = [] l.append('last') return l
#可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple def nn(*nums): for n in nums: print n #### 执行函数的时候,可以输入任意个参数 执行:nn(9) 执行:nn(range(1,4)) c=[8,9,10] 执行:nn(c),返回[8,9,10] #在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去 执行:nn(*c),返回8,9,10
#关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict def pp(name,age,**infors): print 'name:',name,'age:',age,'others:',infors 执行:pp('lily',20) 返回:name: lily age: 20 others: {} 执行:pp('lily',20,gender='femail',city='Beijing') 返回:name: lily age: 20 others: {'gender': 'femail', 'city': 'Beijing'} 执行:infors = {'city': 'Beijing', 'job': 'Engineer'} pp('lily',20,**infors) 返回:name: lily age: 20 others: {'city': 'Beijing', 'job': 'Engineer'}
在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
参考:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000