转自:http://blog.csdn.net/scotfield_msn/article/details/60365842
在 Python 中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数 5种参数形式。 这 5 种参数都可以组合起来使用,但是注意,参数定义的顺序必须是:必选参数、默认参数、可变参数,命名关键字参数和关键字参数。
def f1(a,b,c=0,*args,**kw):
print(a,b,c,args,kw)
#调用情况:
f1(1,2)
f1(1,2,c=4)
f1(1,3,6,'aw','wad',x=123,y='1232')
其中: a,b 为必选参数, c=0 为默认参数, *args 为可变参数,可变参数允许你传入 0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple, **kw 为关键字参数,关键字参数允许你传入 0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
命名关键字参数
如果要限制关键字参数的名字,就可以用命名关键字参数
def person(name,age,*,city='hongkong',job='coder'):
print(name,age,city,job)
person('scofff',212,city='homy',job='eatter')
命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错