《Python语言程序设计》 —3.2.4 关键字参数

举报
华章计算机 发表于 2019/11/18 20:55:17 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第3章,第3.2.4节,作者是王恺 王志 李涛 朱洪文。

3.2.4 关键字参数

在调用函数时,除了前面那种通过位置来体现实参和形参的对应关系的方法(即位置参数),还有一种使用关键字参数的方法,其形式为“形参=实参”。

在使用关键字参数调用函数时,实参的传递顺序可以与形参列表中形参的顺序不一致。这样,当一个函数的很多参数都有默认值,而我们只想对其中一小部分带默认值的参数传递实参时,就可以直接通过关键字参数的方式来进行实参传递,而不必考虑这些带默认值的参数在形参列表中的实际位置。例如,对于代码清单3-5:


代码清单3-5 关键字参数使用方法示例

1    def StudentInfo(name, chineselevel='良好', country='中国'):

2        print('姓名:%s,中文水平:%s,国家:%s'%(name,chineselevel,country))

3    StudentInfo('李晓明')

4    StudentInfo('大卫', country='美国')

5    StudentInfo(country='美国', chineselevel='一般', name='约翰')


程序执行完毕后,将在屏幕上输出如下结果:

姓名:李晓明,中文水平:良好,国家:中国

姓名:大卫,中文水平:良好,国家:美国

姓名:约翰,中文水平:一般,国家:美国

提示 在代码清单3-5的StudentInfo函数中,chineselevel和country都有默认参数,所以在调用函数时可以只给name参数传递实参,如第3行代码所示。

位置参数和关键字参数可以混合使用,但必须位置参数在前、关键字参数在后,如第4行代码所示。如果将第4行代码改为StudentInfo(name='大卫','良好','美国'),即第1个参数使用了关键字参数形式,后2个参数使用了位置参数形式,则系统会给出如下错误提示:

SyntaxError: positional argument follows keyword argument

即位置参数跟在了关键字参数的后面,这种情况在Python中是不允许的。

可以所有参数都使用关键字参数形式,如第5行代码所示,此时可以将这3个参数的位置随意调换。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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