2013-02-19 7 views
3

필자는 여러 함수를 포함하는 클래스를 가지고있다. (대부분 함수를 분석하여 필요한 모든 정보를 얻고이를 인쇄한다.) 나는 수업을 인쇄하려고 노력하고 있는데, 나는 똑똑해. like < _ 메인 _.TestClass 인스턴스는 0x0000000003650888>입니다. 코드 샘플 :파이썬 클래스를 어떻게 인쇄 할 수 있습니까?

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'가 아픈 당신의 지분을 대답 및 추가 정보를 원하시면 –

관련 문제