2013-02-19 52 views
3

我有一个类包含几个功能(其中大部分包含解析水印的代码,获取所有必要的信息并打印它)。我正在尝试打印一堂课,但我得到了不少好处。像< _ main _.TestClass instance at 0x0000000003650888>。代码示例:如何打印Python类?

from lxml import html 
import urllib2 
url = 'someurl.com' 


class TestClass: 

    def testFun(self): 
     f = urllib2.urlopen(url).read() 
     #some code 

     print 'Value for ' +url+ ':', SomeVariable 

    def testFun2(self): 
     f2 = urllib2.urlopen(url).read() 
     #some code 

     print 'Value2 for ' +url+ ':', SomeVariable2 

test = TestClass() 
print test 

当我在课堂外打印功能 - 一切正常。我在做什么错了,我该如何打印一堂课?

谢谢!

回答

5

这是预期的行为。除非您定义了一个__str____repr__方法来为该类提供字符串表示,否则Python无法知道类如何表示。

要清楚:__repr__通常被定义为产生一个字符串,可以评估回类似的对象(在你的案例中,TestClass())。默认__repr__打印出您看到的。

__repr__

def __repr__(self): 
    return self.__class__.__name__ + '()' # put constructor arguments in the() 

__str__可被定义,以产生类的人类可读的 “说明”。如果没有提供,你会得到__repr__

__str__

def __str__(self): 
    return "(TestClass instance)" 
+0

'0xdeadbeef'如果你打这个记忆生病买你的股份 – 2013-02-19 09:30:52