Python if,elif,else链交替

这个问题在这里已经有了答案:

  • 替代Python中的switch语句? 44个答案

  • 尝试使用字典设置,其中密钥是您正在测试的值,并且该密钥的条目是要处理的函数。 一些关于Python的教科书指出,这是比一系列if ... elif语句更优雅的解决方案,并立即获取条目,而不必测试每种可能性。 请注意,因为每个键都可以是任何类型,所以这比C中的switch语句更好,这需要switch参数和case为整数值。 例如。

    def default(command)
        print command, ' is an invalid entry'
    
    mydict = {'create':mycreate, 'delete':mydelete, 'update':myupdate}
    
    action = mydict.get(command, default)
    # set up args from the dictionary or as command for the default.
    action(*args)
    

    有趣的一点是,当else完成最多时,最有效的方法是创建一个if-elif-elif-else语句? 虽然get更“优雅”,但实际上可能比下面的代码慢。 但是,这可能是因为该帖子处理直接操作而不是函数调用。 因人而异

    def default(command)
        print command, ' is an invalid entry'
    
    mydict = {'create':mycreate, 'delete':mydelete, 'update':myupdate}
    
    if command in mydict:
        action = mydict.[command]
        # set up args from the dictionary .
        action(*args)
    else:
        default(command)
    
    链接地址: http://www.djcxy.com/p/42765.html

    上一篇: Python if, elif, else chain alternitive

    下一篇: Python Use Switch Case?