메서드 이름을 인쇄 할 때 Python 개체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

로드 티티카카

매우 간단한 코드로 결과를 모방 할 수있었습니다.

class test:
    def t(self):
        return 0

    def __str__(self):
        return "%s" % self.t

    def __repr__(self):
        return str(self)

t = test()
print "%s" % t

나는 문제가 "%s" % self.t누락 된 것을 안다 .()

내 질문은, 왜?

Barmar

당신이 인쇄 할 때 self.t, 그것은 인쇄합니다

<bound method test.t of XXX>

XXX의 표현은 어디에 있습니까 self? 그러나 수업 repr(self)에서을 호출 str(self)하면 self.t다시 인쇄를 시도 합니다. 이것은 이렇게 반복됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관