那些让你快速升级的python大牛写的优美代码(1)

本文章的代码参考自python神书《500 lines or less》,每一章都是由不同领域的大牛编写而成。

如下,如果我们要抛出异常,一般这样写

先自定义一个异常类

那些让你快速升级的python大牛写的优美代码(1)

然后使用这个类抛出自己的需要的异常类型

那些让你快速升级的python大牛写的优美代码(1)


但是,这样的话,如果需要检测的情况太多,这个方法便会写的很长,所以当异常太多时,我们可以把他们包装成类,然后重构代码

先定义一个异常处理的基类

那些让你快速升级的python大牛写的优美代码(1)

关于用断言实现多态性,可以看我这篇文章《那些让你快速升级的python大牛写的优美代码(2)》

当然你也可以用异常处理,抛出NotImpLementedError来抛出未实现接口的异常

那些让你快速升级的python大牛写的优美代码(1)

把一个个异常检测派生出子类,对应抛出相应异常的类

那些让你快速升级的python大牛写的优美代码(1)

然后把这些类放到一个异常处理的列表里,相应更改对应的do_GET里的代码,记得注意列表的顺序

那些让你快速升级的python大牛写的优美代码(1)

其他没说的部分都补充在注释里了

当然,这方法不止可以在异常处理时用,几乎所有if elif  else语句都可以这样用,只是这个例子比较经典而已