《Python语言程序设计》 —3.2.3 默认参数
3.2.3 默认参数
函数的默认参数就是缺省参数,即当调用函数时,如果没有为某些形参传递对应的实参,则这些形参会自动使用默认参数值。
提示 使用默认参数值的主要目的是使函数使用者能够更加方便地完成一个具有复杂参数列表的函数调用。当编写一个函数时,为了使函数能够适应更多的情况,通常倾向于让这个函数的参数列表中包含很多参数(一部分系统函数就是这种情况)。但这样做会给函数调用造成麻烦,开发者在调用函数时需要弄清楚每一个参数的含义。实际上,这个函数的大部分参数在很多情况下取特定参数值即可。此时,通过给一些通常取特定参数值的形参指定默认参数值,开发者就可以忽略这些具有默认参数值的形参,只需要给那些没有默认参数值的形参传递实参;在默认参数值无法满足开发需求的情况下,再考虑如何给全部或部分带默认参数值的形参传递正确的实参。
下面通过一个例子说明带默认参数的函数的定义方法和调用方法。例如,在中国某高校输入学生信息时,大多数学生所在国家都是中国,所以可以考虑将国家的默认值设置为“中国”;在输入外国留学生信息时,再指定为其他国家,如代码清单3-4所示。
代码清单3-4 带默认参数的函数的定义和调用方法示例
1 def StudentInfo(name,country='中国'): #参数country的默认参数值为"中国"
2 print('姓名:%s,国家:%s'%(name,country))
3 StudentInfo('李晓明') #这里没有给country传实参值,但因为有默认参数,所以不会出错
4 StudentInfo('大卫','美国') #给country传了实参,则不再使用默认参数
程序执行完毕后,将在屏幕上显示如下结果:
姓名:李晓明,国家:中国
姓名:大卫,国家:美国
注意 在代码清单3-4的StudentInfo函数中,name并没有默认参数,所以在调用函数时必须为其指定实参,否则运行程序会报错。例如,当执行StudentInfo()时,系统会给出如下报错信息:
TypeError: StudentInfo() missing 1 required positional argument: 'name'
即StudentInfo函数调用时缺少了一个必须的位置参数:name。
- 点赞
- 收藏
- 关注作者
评论(0)