这应该是不言自明的

>>> (1+2j).real  #Normal Usage
1.0
>>> (1+2j).imag  #Normal Usage
2.0
>>> 1+2j.real  #Normal Usage
1.0
>>> 1+2j.imag  #Flips Out
3.0
>>> 123+657j.real
123.0
>>> 123+657j.imag
780.0


z.imag以某种方式将实部和虚部相加。
我发现这很有趣..这是错误还是故意的功能?

最佳答案

问题是1+2j.imag被解析为1+(2j.imag)。显然2j.imag2.0,所以1+2j返回3.0。当您执行1+2j.real时,Python将添加12j.real2j.real0.0,因此您将获得正确的答案1.0

如果您将复数括起来,如前两个示例中所示,您将获得预期的结果。

10-06 01:23