Python 의str__ 와repr__ 방법 대비
repr
함 수 를 소 개 했 습 니 다.Python 이 대상 을 대상 으로 하 는 생소 함 과 열 도 를 제대로 알 지 못 할 때 감성 적 으로repr
와str
두 함수 의 차 이 를 이해 해 보 세 요.Python 의 전역 방법
repr
과str
이 대상 에 비 치 는repr__ 와str__ 방법 호출,그리고str(obj)
어떤 방법 을 호출 할 지,그리고print(obj)
Python 코드 를 디 버 깅 할 때의 대상 은 어떤 방법 을 호출 할 지 표시 합 니 다.이것 이 바로 본문 이 실증 하고 자 하 는 내용 이다.자바 의
System.out.println(obj)
나 "hello" + obj
가 자바 대상toString()
방법 을 호출 하 는 것 처럼 Python 에 서 는 어떻게 된 일 일 까?어떤 Python 입문서 의 해석
repr
과str
: repr
은 representation 이라는 뜻 으로 하 나 는 정식 이 고 다른 하 나 는 비공 식 이 며repr
보다 중요 해 보인다.내 장 된 Python 대상 에 대해 서 는
str
,repr
,그리고print
함수,예 를 들 어str
유형 을 사용 할 수 있 습 니 다.
>>> repr([1,2])
'[1, 2]'
>>> print([1,2])
[1, 2]
>>> str([1,2])
'[1, 2]'
그러나 구체 적 으로 위의 세 함수 에서 각각 list 의 어떤 방법 을 호출 했 는 지 알 수 없다.이때 자신의 종 류 를 정의 하면 문 제 를 가장 잘 설명 할 수 있다.테스트 환경 은 IntelliJ 로 디 버 깅 캡 처 로 각각list
과__str__
몇 가지 조합 상황 을 설명 한다.정의 만str__ 방법.
설명:
__repr__
방법 만 정 의 된 상황 에서__str__
의 출력 이지 만 변수 창 에 기본 __str__
의 출력 __repr__
기본repr
방법 __repr__
전환 함수 호출str
방법__str__
호출print
방법설명:
__str__
방법 만 정 의 된 상황 에서 알 수 있 듯 이__repr__
방법 은 매우 강하 고 모든 호출 을 독점 했다.__repr__
,repr
함수,심지어 IntelliJ 의 디 버 깅 디 스 플레이 는 반드시str
방법 을 핵심 으로 해 야 한다.설명:
print
과__repr__
방법 을 동시에 정의 한 상황 에서__repr__
방법 은 오히려 되 돌 릴 수 있다.명확 한__str__
호출__str__
방법 과 디 버 깅 시 변수 창 에 표시 되 는 대상 호출repr
방법 을 제외 하고 다른 때 는__repr__
이 우세 하 다.구체 적__repr__
때 와 같 습 니 다.예 를 들 어 아래 의 포맷 코드 와 같 습 니 다.
f1 = "%s" % t
f2 = "{}".format(t)
Python 은 자바 처럼 문자열 에 대상 을 추가 하 는 것 을 모 릅 니 다.
"this is " + t #Java "this is " + t.toString()
Python 은 다음 과 같은 오 류 를 보고 할 것 입 니 다.TypeError: can only concatenate str (not "Test") to str
이+번 호 는 두 문자열 만 연결 할 수 있 습 니 다.
__str__
방법 과print
방법 이 정의 되 지 않 는 한 대응 관 계 는 각각
t = Test()
z1 = 'hello' + t # t.__radd__('hello')
z2 = t + 'hello' # t.__add__('hello')
파 이 썬__add__
도 환상 적 이 야.지금까지 파 이 썬 의str__ 와repr__ 방법 대비 자세 한 내용 은 Pythonstr__ 와repr__ 의 자 료 는 우리 의 기타 관련 문장 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.