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参数的值可以使用位置方式进行指定,也可以使用关键字的方式进行指定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值