打印实例在Python

问题描述:

类复合物: DEF 初始化(个体,realpart,imagpart): self.real = realpart self.imag = imagpart 打印self.real,self.imag打印实例在Python

我得到这个输出:

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

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

+0

其方法是什么空闲标记是什么意思? – kame 2010-04-21 12:34:57

+1

我认为这是指捆绑的Python IDE http://en.wikipedia.org/wiki/IDLE_(Python) – chills42 2010-04-21 12:36:42

+1

我希望你明白,这段代码只会打印两个变量,而不是构造函数。这是打印返回对象的IDLE。 – 2010-04-21 14:09:34

因为类的构造函数总是返回实例,然后你可以调用之后

inst = Complex(3,2) 

inst.dosomething() 

因为它是声明“Complex(3,2)”的结果。换句话说,Complex对象正在被返回,并且交互式解释器将前面的语句的结果打印到屏幕上。如果您尝试“c = Complex(3,2)”,您将抑制该消息。

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

试试:

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

所以你要Complex(3,2)调用创建对象,而Python是打印出来。

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