为什么Python浮点数具有real和imag属性?

Rom*_*rés 4 python

至少在Python 3中,float具有属性realimag以及方法conjugate()。既然issubclass(float, complex)评估到了False,这些的原因是什么?

nor*_*ok2 5

这显然是一个设计选择,它是很好的扎根在Python数值类型(即boolintfloatcomplex),从源代码清晰(如float)。

这已经在已经讨论PEP 3141,这导致中numbers为模块数值抽象基类模块。正如你所看到的,.real.imag并且.conjugate()是通用的一部分Number抽象。

从实际的角度来看,这意味着可以安全地编写任何数值算法,complex并且可以对任何子Number类型正常运行。