Python自定义函数的位置参数和关键字参数
1 位置参数和关键字参数
在《Python中自定义函数的方法》中提到,在调用函数时,可以根据函数参数的位置确定该参数的值,此时的参数叫做函数的位置参数,如图1所示。
图1 位置参数
从图1中可以看出,根据func1()函数参数的位置,此时参数a的值是1,b的值是字符串“hello”。在 《Python中函数的关键字参数》中提到,对于具有默认参数值的函数,可以使用关键字来指定参数的值,此时的参数叫做函数的关键字参数,如图2所示。
图2 关键字参数
从图2中可以看到,在调用func2()函数时,用关键字的方式指定了参数a和b的值。
2 同一个函数中的位置参数和关键字参数
可以在定义函数时,指定哪些参数是位置参数,哪些参数是关键字参数,如图3所示。
图3 指定位置参数和关键字参数
从图3中可以看到,自定义函数f的参数中有“/”和“*”两个符号。“/”符号之前的参数即pos1和pos2是位置参数;“*”符号之后的参数,即kwd1和kwd2是关键字参数;而这两个符号之间的参数,即pos_or_kwd即是位置参数,又是关键字参数。对于以上定义参数的方法,包括三种情况:一是“只有位置参数的函数”,二是“只有关键字参数的函数”,三是“既有位置参数又有关键字参数的函数”。
2.1 只有位置参数的函数
只有位置参数的函数如图4所示。
图4 只有位置参数的函数
其中,参数arg位于“/”的前面,因此arg是位置参数。因此,如图5所示的代码中,可以用位置方式设置参数,而不能用关键字的方式设置参数。
图5 调用pos_only_arg()函数
2.2 只有关键字参数的函数
只有关键字参数的函数如图6所示。
图6 只有关键字参数的函数
从图6中可以看出,arg位于“*”的后面,因此,arg是位置参数。调用kwd_only_arg()函数的代码如图7所示,可以看出,可以用关键字设置参数值,而不能用位置设置参数值。
图7 调用kwd_only_arg()函数
2.3 既有位置参数又有关键字参数的函数
既有位置参数又有关键字参数的函数如图8所示,其中pos_only是位置参数;kwd_only是关键字参数,standard既是位置参数又是关键字参数。
图8 既有位置参数又有关键字参数的函数
调用该函数的代码如图9所示。
图9 调用combined_example()函数
从图9中可以看出,standard参数的值可以使用位置方式进行指定,也可以使用关键字的方式进行指定。
h jk: 发生系统错误 2。 系统找不到指定的文件。
m0_52322948: failbit是4吧
默认名称997979: 我勒个去手动安装一次果然好了,自动不行。
普通网友: 文章内容通俗易懂,适合不同层次的读者。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】
CSDN-Ada助手: 不知道 Python入门 技能树是否可以帮到你:https://edu.csdn.net/skill/python?utm_source=AI_act_python