Python结合使用位置实参和任意数量实参(78)
2017-08-23 本文已影响53人
一日歌
如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。
白话下,任意数量的参数和固定格式的参数参数怎么组合呢?那首先解决少的,然后后面放任意数量参数。
例如,如果前面的函数还需要一个表示比萨尺寸的实参,必须将该形参放在形参*toppings的前面:
python大大的图
我的图
Python将收到的第一个值存储在形参size中,并将其他的所有值都存储在元组toppings中。在函数调用中,首先指定表示比萨尺寸的实参,然后根据需要指定任意数量的配料。
依据这个定义,*toppings能够放进size之后的所有参数,如果在它后面再放一个形参,这个形参将无对应值导致python报错
即使在*toppings后面的参数给了默认值也不行。
这么看来,带星号的形参后面真的不适合放任何形参。