《Python语言程序设计》 —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个参数的位置随意调换。
- 点赞
- 收藏
- 关注作者
评论(0)