默认参数
def power(x, n=2): #为默认参数为常数
s = 1
while n > 0:
n = n - 1
s = s * x
return s
def add_end(L=[]): #默认参数为变量【会导致问题:下次调用时不在是[],所以默认参数必须指向不变对象】
L.append('END')
return L
可变参数
def calc(*numbers): # 定义可变参数【在函数调用时自动组装为一个tuple】和定义list或tuple参数相比,仅仅在参数前面加了一个*号
sum = 0
for n in numbers:
sum = sum + n * n
return sum
关键字参数
def person(name, age, **kw): # 可变参数在函数调用时自动组装为一个tuple
print 'name:', name, 'age:', age, 'other:', kw
注意
- 必选参数在前,默认参数在后
- *args是可变参数,args接收的是一个tuple
- **kw是关键字参数,kw接收的是一个dict:
- 可变参数: func(1, 2, 3)或者func(*(1, 2, 3));
- 关键字参数:func(a=1, b=2)或者func(**{‘a’: 1, ‘b’: 2})。