2013-02-19 66 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