尝试在 Python 文档中寻找抽象类和抽象方法的说明吗?别浪费太多时间,事实上,那里没有。许多 Python 的拥趸认为,非要给 Python 加上抽象类或者抽象方法,是不符合 Pythonic 精神的。
不过,如果你出于某些原因,需要定义抽象类或者抽象方法,这里有一些简单的解决办法可供参考。
方法一:简单的解决方案
使用上类似:
>>> obj1 = B() B >>> obj2 = A() Traceback (most recent call last): File "<input>", line 1, in <module> File "<input>", line 2, in __init__ File "<input>", line 2, in abstract NotImplementedError: abstract
方法二:稍复杂但更灵活的解决方案
使用上类似:
>>> obj1 = B() A B >>> obj2 = A() Traceback (most recent call last): File "<input>", line 1, in <module> File "<input>", line 2, in __init__ File "<input>", line 2, in abstract NotImplementedError: abstract
更简单的解决方案
The Python IAQ(少有回答的 Python 问题)上给出了一个更简单的方法以及说明。这里是地址:
http://norvig.com/python-iaq.html
这里是中文版的翻译:
http://www.chenwy.com/python-iaq-cn.html
更完整的解决方案
在 ActiveState Programmer Network 上的 Python Cookbook 中,Ivo Timmermans 提出了一个比较完整的抽象类和抽象方法的解决方案。这里是地址:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/266468
转载请注明“转自粲言堂 http://xuecan.blogspot.com/”。