gpt4 book ai didi

python - 有没有办法欺骗类的 isinstance 结果?

转载 作者:行者123 更新时间:2023-12-05 04:20:32 32 4
gpt4 key购买 nike

(编辑标题,因为答案适用于任何类,而不仅仅是 cython 类)

我正在开发对性能有非常严格限制的扩展类型,我对结果很满意。

我发现对于基本上是限制为 0 < 值 < 360 的 float 的类型,不基于 float 更快,而是将值存储为属性并从需要的 float 重现任何方法。

我发现的一个问题是使用 pytest.approx 的测试除了微不足道的精确值外不起作用,因为 ApproxScalar 仅在类型是 Complex 或 Decimal 的子类时才尝试进行进一步比较。

在 python/cython 中有什么方法可以欺骗 isinstance 调用来相信我的类是 float 实例吗?

最佳答案

numbers.Complex 是一个抽象基类,所以有一个 register method您可以使用它来关联任何 Python 类型,以便它为 isinstance 返回 True

您要注册的类是 Cython cdef 类这一事实根本不重要

关于python - 有没有办法欺骗类的 isinstance 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74438458/

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