阶级复杂:DEF 在里面(self,realpart,imagpart):self.real = realpart self.imag = imagpart print self.real,self.imag

我得到此输出:

>>> Complex(3,2)
3 2
<__main__.Complex instance at 0x01412210>

但是他为什么要打印最后一行?

有帮助吗?

解决方案

因为类构造函数总是返回实例,那么您可以在此之后调用其方法

inst = Complex(3,2)

inst.dosomething()

其他提示

您从交互式Python提示中运行代码,该提示可以打印出任何语句的结果,除非它是 None.

尝试一下:

>>> 1
1
>>> 1 + 3
4
>>> "foobar"
'foobar'
>>> 

所以你打电话给 Complex(3,2) 正在创建一个对象,而Python正在将其打印出来。

因为这是“复杂(3,2)”陈述的结果。换句话说,正在返回一个复杂的对象,交互式解释器将上一个语句的结果打印到屏幕上。如果您尝试“ C =复杂(3,2)”,则将抑制消息。

您想要的是定义 __str__(self) 并做到 返回 字符串表示(不打印一个)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top