Python浮点数为什么有实部和虚部属性?

8
在Python 3中,float类型至少有三个属性:realimag和一个方法conjugate()。由于issubclass(float, complex)的结果为False,那么这些属性和方法存在的原因是什么?

你是在问一个实际的原因还是哲学上的原因? - norok2
2
@norok2 现在我对两者都感兴趣。 - Markus Meskanen
我想说,从哲学的角度来看,我在思考它们存在的实际意义是否存在! - Roméo Després
4
为了完整起见,intdenominatornumerator也是如此。 - tobias_k
1个回答

8
这显然是一种设计选择,它与 Python 数值类型(即 boolintfloatcomplex)紧密相关,源代码清晰地表明了这一点(例如对于 float)。
这在 PEP 3141 中已经讨论过,结果产生了用于数字抽象基类numbers 模块。 正如您所看到的,.real.imag.conjugate() 都是通用的 Number 抽象的一部分。
从实际角度来看,这意味着任何数值算法都可以安全地编写为 complex,并且它将优雅地适用于任何 Number 子类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接