将函数作为字典的值-使用lambda
今天看到一个代码:
state_actions = { 'Init': init, 'Win': lambda: not_game('Win'), 'Gameover': lambda: not_game('Gameover'), 'Game': game }
但是我写的时候就直接:
state_actions = { 'Init': init, 'Win': not_game('Win'), 'Gameover': not_game('Gameover'), 'Game': game }
区别就是,第一种写法返回的是一个函数:state_actions['Init'] = not_game('Win'),这时传参已经完成了,但是还没有执行,等需要结果的时候,直接state_actions['Init']() 就可以,也无需传参数
第二种直接state_actions['Init'] = 'Win',不仅仅传参完成了,函数也执行完毕。

浙公网安备 33010602011771号