Python结合使用位置实参和任意数量实参(78)

2017-08-23  本文已影响53人  一日歌

如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

白话下,任意数量的参数和固定格式的参数参数怎么组合呢?那首先解决少的,然后后面放任意数量参数。

例如,如果前面的函数还需要一个表示比萨尺寸的实参,必须将该形参放在形参*toppings的前面:

python大大的图

我的图

Python将收到的第一个值存储在形参size中,并将其他的所有值都存储在元组toppings中。在函数调用中,首先指定表示比萨尺寸的实参,然后根据需要指定任意数量的配料。

依据这个定义,*toppings能够放进size之后的所有参数,如果在它后面再放一个形参,这个形参将无对应值导致python报错

即使在*toppings后面的参数给了默认值也不行。

这么看来,带星号的形参后面真的不适合放任何形参。

上一篇下一篇

猜你喜欢

热点阅读