0
点赞
收藏
分享

微信扫一扫

Python中函数的关键字参数

在《Python中参数具有默认值的函数》中提到,对于具有默认参数值的函数来说,在调用该函数时,可以指定其参数值,也可以不指定其参数值。

1 具有多个默认参数值的函数

对于具有多个默认参数值的函数来说,必须按顺序指定其参数值。如图1所示。

图1 具有多个默认参数值的函数

其中,自定义函数func()具有三个参数,这三个参数都具有默认参数值。在调用该函数时,必须按照顺序指定其参数值,即第一个参数值表示i的值,第二个参数值表示j的值,第三个参数值表示k的值。如果使用图2所示的代码调用func(),此时只想指定参数i和k的值,而参数j使用默认值,则不能得到想要的结果。

图2 没有指定所有参数值

从图2中可以看到,期望将i的值设置为1,j的值使用默认值,k的值设置为“world”,此时得到的结果并非是“1 1.1 world”,而是“1 world hello”,也就是说Python编译器将“world”的值赋值给了参数j。

2关键字参数

2.1使用方法

可以使用关键字参数解决上述问题。关键字参数指的是在调用具有参数默认值的函数时,使用参数的关键字来指定为哪个参数赋值,如图3所示。

图3 关键字参数

从图3中可以看出,使用关键字参数,将func()函数的参数i设置为1,参数k设置为“world”,而参数j使用默认值,此时的输出为期望的结果。

2.2 注意事项

在使用关键字参数调用函数时,需要注意以下几点。

2.2.1 不能在关键字参数后面使用非关键字参数

如图4所示。

图4 不能在关键字参数后面使用非关键字参数

其中,func()函数的i=1是关键字参数,而“world”是非关键字参数,此时编译器不知道将“world”赋值给参数j还是参数k,因此会报错。

2.2.2 不能对通过一个参数进行多次赋值

如图5所示。

图5 不能对通过一个参数进行多次赋值

其中,通过关键字参数对参数i进行了两次赋值,此时编译器报错。

2.2.3 不能使用未知关键字参数

如图6所示。

 

图6 不能使用未知关键字参数

其中,关键字参数m不是func()的关键字参数,因此编译器报错。

举报

相关推荐

0 条评论