gpt4 book ai didi

python - ABC 的计算成本

转载 作者:行者123 更新时间:2023-12-01 04:11:36 24 4
gpt4 key购买 nike

我过去使用过 abc,我想再次使用它们,以使用 @abstractmethod 强制执行类似纯虚拟的方法。这是在用户经常扩展的 API 的 Python 前端的上下文中。

开发一个可靠的综合规模测试对我来说有点太复杂了,而且我一直使用 abc 作为黑魔法封闭盒子,所以我不知道抽象和检查抽象的成本在哪里,以及何时可能发生,或者实际成本是多少,或者是如何扩展的。

我无法在任何地方找到有关底层机制的令人满意的完整信息,因此任何有关魔法发生的时间和地点以及成本的指示都将受到极大的赞赏(导入?实例化?如果扩展实例,双倍浸入成本?)

有关用例的一些进一步信息:与之前的用例(对我来说)不同,每个基础对象的实例数量非常有限,并且 abc 测量到没有可感知的开销,这一次将用于某些东西(具有 TreeView 的 DAG 中的节点)可以被实例化,然后就地扩展数百次,并且虚拟方法的数量可能会增加到每个类大约十几个。

继承永远不会是多重的,而且通常都很浅,最多两到三个,大多数时候只有一个。

由于第三方平台限制而使用 Python 2.7。

最佳答案

在 Python 2.6 之前,使用 ABC 会带来一些显着的开销。 Issue 1762将此报告为错误,并在 Python 2.6 中修复(通过将一些 ABC 机制移至 object 的 C 实现中)。

在较新版本的 Python 中,使用 ABC 的类和不使用 ABC 的类之间的性能差异应该很小(该错误提到 isinstance 检查的速度仍然存在很小的差异,但其他行为的性能差异基本上为零)。

关于python - ABC 的计算成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34846631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com