谈函数参数
函数的参数
默认参数
当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。使用默认参数有什么好处?
最大的好处是能降低调用函数的难度。
那么,怎么使用默认参数呢?
====
举个例子,我们写个一年级小学生注册的函数,需要传入name和gender两个参数:
def enroll(name, gender):
print('name:', name)
print('gender:', gender)
这样,调用enroll()函数只需要传入两个参数:
enroll('Sarah', 'F')
输出如下:
name: Sarah
gender: F
如果要继续传入年龄、城市等信息怎么办?这样会使得调用函数的复杂度大大增加。
我们可以把年龄和城市设为默认参数:
def enroll(name, gender, age=6, city='Beijing'):
print('name:', name)
print('gender:', gender)
print('age:', age)
print('city:', city)
这样,大多数学生注册时不需要提供年龄和城市,只提供必须的两个参数:
enroll('Sarah', 'F')
输出如下:
name: Sarah
gender: F
age: 6
city: Beijing
只有与默认参数不符的学生才需要提供额外的信息:
enroll('Bob', 'M', 7)
enroll('Adam', 'M', city='Tianjin')
====
-
有多个默认参数时,调用的时候,既可以按顺序提供默认参数:
比如调用enroll('Bob', 'M', 7),意思是,除了name,gender这两个参数外,最后1个参数应用在参数age上,city参数由于没有提供,仍然使用默认值。
-
也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。 比如调用enroll('Adam','M',city='Tianjin'),意思是,city参数用传进去的值,其他默 认参数继续使用默认值。