《Python语言程序设计》 —3.2.3 默认参数

举报
华章计算机 发表于 2019/11/18 20:54:12 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第3章,第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。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。