我过去使用过 abc,我想再次使用它们,以使用 @abstractmethod 强制执行纯虚拟方法。这是在 Python 前端到用户将经常扩展的 API 的上下文中。
开发一个可靠的综合测试规模对我来说有点太复杂了,而且我一直使用 abc 作为一个黑魔法封闭盒子,所以我不知道抽象和检查摘要的成本在哪里,什么时候它可能会发生,或者成本实际上会是什么样子,或者它会随着什么规模而扩大。
我无法在任何地方找到令人满意的基础机制的完整信息,因此任何关于何时何地发生魔法以及以何种成本发生的指针将不胜感激(导入?实例化?如果实例扩展,则成本翻倍?)
关于用例的一些进一步信息:与以前的用例(对我来说)不同,每个基本对象的实例数量非常有限,并且 abc 测量到没有可感知的开销,这一次它将用于某些东西(节点在一个带有树视图的 DAG),它可以被实例化,然后在适当的位置扩展数百次,并且每个类的虚拟方法的数量可能高达十几个左右。
继承从来不是多重的,而且它通常很浅,最多两三个深,大多数时候只有一个。
Python 2.7 由于第 3 方平台的限制。