慕妹3242003
kwargs只是一个字典,它被添加到参数中。字典可以包含键值对。那就是小矮人。好吧,就是这样。事情并不那么简单。例如,(非常假设的)您有一个接口,它只调用其他例程来完成任务:def myDo(what, where, why):
if what == 'swim':
doSwim(where, why)
elif what == 'walk':
doWalk(where, why)
...现在,您得到了一种新的方法“驱动”:elif what == 'drive':
doDrive(where, why, vehicle)但是等一下,有一个新的参数“Vehicle”-你以前不知道。现在,您必须将它添加到mydo函数的签名中。在这里,你可以把kwargs扔进游戏中-你只需在签名中添加kwargs:def myDo(what, where, why, **kwargs):
if what == 'drive':
doDrive(where, why, **kwargs)
elif what == 'swim':
doSwim(where, why, **kwargs)这样,您不需要每次调用例程更改时都更改接口函数的签名。