Python if,elif,else链交替
这个问题在这里已经有了答案:
尝试使用字典设置,其中密钥是您正在测试的值,并且该密钥的条目是要处理的函数。 一些关于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