谈函数参数

函数的参数

默认参数

当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。使用默认参数有什么好处?

最大的好处是能降低调用函数的难度。

那么,怎么使用默认参数呢?

====

举个例子,我们写个一年级小学生注册的函数,需要传入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参数用传进去的值,其他默 认参数继续使用默认值。

posted @ 2018-05-09 22:44  moonok  阅读(128)  评论(0)    收藏  举报