본문 바로가기
파이썬

파이썬 Python __str__ 대 __unicode__

by º기록 2021. 2. 3.
반응형

__ str __ () __ unicode __ () 를 구현해야하는시기에 대한 파이썬 규칙이 있습니까? 클래스가 __ str __ () 보다 __ unicode __ () 를 더 자주 재정의하는 것을 보았지만 일관성이없는 것 같습니다. 하나를 구현하는 것이 더 나은 경우 특정 규칙이 있습니까? 둘 다 구현하는 것이 필요합니까 / 좋은 습관입니까?

 

해결 방법

 

__ str __ () 은 이전 메소드로 바이트를 반환합니다. __ unicode __ () 는 새롭고 선호되는 방법으로 문자를 반환합니다. 이름이 약간 혼란 스럽지만 2.x에서는 호환성 이유로 인해 이름이 붙어 있습니다. 일반적으로 모든 문자열 형식을 __ unicode __ () 에 넣고 스텁 __ str __ () 메서드를 만들어야합니다.

def __str__(self):
    return unicode(self).encode('utf-8')

3.0에서 str 에는 문자가 포함되어 있으므로 동일한 메서드의 이름은 __ bytes __ () __ str __ () 입니다. 예상대로 작동합니다.

 

참조 페이지 https://stackoverflow.com/questions/1307014

 

 

반응형

댓글