You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3 中如何判断变量是否为 mpfr 类型实例

如何判断变量是否为gmpy2的mpfr类型

gmpy2模块对外暴露的mpfr是工厂函数而非类型对象,所以直接调用isinstance(v, mpfr)会触发类型错误。有两种更稳定高效的实现方案:

方案1:使用官方内置的判断函数(最推荐)

gmpy2自带了专门的类型检查方法gmpy2.is_mpfr(),直接调用即可,无需额外处理:

import gmpy2
from gmpy2 import mpfr

f = mpfr('0.5')
# 检查是否为mpfr类型
print(gmpy2.is_mpfr(f))  # 输出 True
print(gmpy2.is_mpfr(1.0))  # 输出 False

方案2:提前缓存mpfr类型对象

如果需要频繁做类型判断,可以提前获取mpfr的类型对象缓存复用,避免每次判断生成临时实例:

import gmpy2
from gmpy2 import mpfr

# 仅初始化一次,后续所有判断复用该变量
MPFR_TYPE = type(mpfr())

f = mpfr('0.5')
print(isinstance(f, MPFR_TYPE))  # 输出 True

原写法的优化点

你之前使用的isinstance(f, mpfr().__class__)逻辑正确,但每次判断都会生成一个临时的mpfr空实例,存在不必要的性能开销,替换为提前缓存的类型对象即可解决。

内容的提问来源于stack exchange,提问作者Ξένη Γήινος

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:06:00