Python 减少if else分支结构的使用——利用模块化编程代替if else分支结构

if else的分支结构很好用,但是滥用它的后果是使代码的缩进层次变得很复杂。

def func(choice):
    if choice == 1:
        pass
    elif choice == 2:
        pass
    elif choice == 3:
        pass
    elif choice == 4:
        pass
    elif choice == 5:
        pass

这种经典的写法看上去整洁好看,实际上不推荐。原因如下:
1.**效率低。**如果我们选择最后一个选项,那么它还是会对前面每一项都进行判断。
2.如果pass中省略的代码更加复杂,会导致缩进层次更加复杂。
可以利用模块化编程的思想对上面进行改进,
我们先将上面代码中pass语句封装成一个个函数,变成这样的:

def func(choice):
    if choice == 1:
        func1()
    elif choice == 2:
        func2()
    elif choice == 3:
        func3()
    elif choice == 4:
        func4()
    elif choice == 5:
        func5()

接下来考虑如何去掉if else语句。
**python中一切皆对象。**可以利用列表或元组来存储函数。而因为元组占用的内存比列表小,所以推荐使用元组。

def func(choice):
    func_list = (func1, func2, func3, func4, func5)
    func_list[choice]()

猜你喜欢

转载自blog.csdn.net/qq_46620129/article/details/112796351