将函数作为字典的值-使用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',不仅仅传参完成了,函数也执行完毕。

posted @ 2020-09-14 22:46  LoveGood_luna  阅读(207)  评论(0)    收藏  举报