复合类:def init (self, realpart, imagpart): self.real = realpart self.imag = imagpart print self.real, self.imag
我得到这个输出:
>>> Complex(3,2)
3 2
<__main__.Complex instance at 0x01412210>
但他为什么要打印最后一行?
复合类:def init (self, realpart, imagpart): self.real = realpart self.imag = imagpart print self.real, self.imag
我得到这个输出:
>>> Complex(3,2)
3 2
<__main__.Complex instance at 0x01412210>
但他为什么要打印最后一行?
您从交互式 python 提示符运行代码,该提示符会打印出任何语句的结果,除非它是None
.
尝试一下:
>>> 1
1
>>> 1 + 3
4
>>> "foobar"
'foobar'
>>>
因此,您的调用Complex(3,2)
是创建一个对象,而 python 正在将其打印出来。
因为它是语句“Complex(3,2)”的结果。换句话说,一个 Complex 对象被返回,交互式解释器将前一个语句的结果打印到屏幕上。如果您尝试“c = Complex(3, 2)”,您将禁止显示该消息。
因为类构造函数总是返回实例,然后你可以调用它的方法
inst = Complex(3,2)
inst.dosomething()
您想要的是定义__str__(self)
并使其返回一个字符串表示形式(而不是打印一个)。