任务
需要根据某个控制变量的值执行不同的代码片段——在其他的语言中你可能会使用case 语句。
解决方案
归功于面向对象编程的优雅的分派概念,case语句的使用大多(但不是所有)都可以被替换成其他分派形式。在Python中,字典及函数是一等(first-class)对象这个事实(比如函数可以作为字典中的值被存储),使得“case 语句”的问题更容易被解决。比如,考虑下面的代码片段:
animals = [ ]
number_of_felines = 0
def deal_with_a_cat():
glob