调用函数时还可以使用关键字参数,它的调用形式是key=value。
这个函数可以如下方式调用:
parrot(1000)
parrot(voltage=1000)
parrot(voltage=1000000,action='VOOOOOM')
parrot(action='VOOOOOM',voltage=1000000)
parrot('a million','bereft of life','jump')
parrot('a thousand',state='pushing up the daisies')
但是下面的调用方式是无效的。
parrot()
parrot(voltage=5.0,'dead')
parrot(110,voltage=220)
parrot(actor='John Cleese')
在函数调用时,关键字参数必须跟在位置参数之后,参数不能被重复赋值。
当最后的形式参数**name存在时,它接收一个字典类型(见映射类型 - 字典),其中包含除了那些有对应形参的所有关键字参数。还有一种*name的形式参数。 (*name必须在**name之前。)举例来说,如果我们这样定义一个函数:
如果我们这样调用:
cheeseshop("Limburger","It's very runny, sir.","It's really very, VERY runny, sir.",shopkeeper="Michael Palin",client="John Cleese",sketch="Cheese Shop Sketch")
结果如下: