itsource

__repr__ 메서드의 목적은 무엇입니까?

mycopycode 2023. 7. 6. 22:12
반응형

__repr__ 메서드의 목적은 무엇입니까?

def __repr__(self):
  return '<%s %s (%s:%s) %s>' % (
    self.__class__.__name__, self.urlconf_name, self.app_name,
    self.namespace, self.regex.pattern)

이 방법의 중요성/목적은 무엇입니까?

__repr__개체의 인쇄 가능한 표현을 반환해야 합니다. 이 개체를 만들 수 있는 방법 중 하나일 가능성이 높습니다.여기에서 공식 설명서를 참조하십시오. __repr__개발자들에게 더 많은 것을 제공하는 반면,__str__최종 사용자를 위한 것입니다.

간단한 예:

>>> class Point:
...     def __init__(self, x, y):
...             self.x, self.y = x, y
...     def __repr__(self):
...             cls = self.__class__.__name__
...             return f'{cls}(x={self.x!r}, y={self.y!r})'
>>> p = Point(1, 2)
>>> p
Point(x=1, y=2)

이는 Python 설명서에 잘 설명되어 있습니다.

repr(개체):개체의 인쇄 가능한 표현을 포함하는 문자열을 반환합니다.이 값은 변환(역따옴표)을 통해 산출된 값과 동일합니다.이 작업을 일반 기능으로 액세스할 수 있으면 유용할 수 있습니다.많은 유형의 경우, 이 함수는 다음으로 전달될 때 동일한 값을 가진 객체를 생성하는 문자열을 반환하려고 시도합니다.eval()그렇지 않으면 표현은 객체의 이름과 주소를 포함하는 추가 정보와 함께 객체 유형의 이름을 포함하는 대괄호로 묶인 문자열입니다.클래스는 다음을 정의하여 이 함수가 인스턴스에 대해 반환하는 것을 제어할 수 있습니다.__repr__()방법.

여기서 볼 수 있는 것은 의 기본 구현이며, 이는 직렬화 및 디버깅에 유용합니다.

__repr__독립 실행형 Python 인터프리터에서 클래스를 인쇄 가능한 형식으로 표시하는 데 사용됩니다.예:

~> python3.5
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> class StackOverflowDemo:
...     def __init__(self):
...         pass
...     def __repr__(self):
...         return '<StackOverflow demo object __repr__>'
... 
>>> demo = StackOverflowDemo()
>>> demo
<StackOverflow demo object __repr__>

a인 경우__str__메소드가 클래스에 정의되지 않았습니다. 메소드를 호출합니다.__repr__인쇄 가능한 표현을 만들기 위해 기능합니다.

>>> str(demo)
'<StackOverflow demo object __repr__>'

또한.print()수업시간에 부를 전화__str__결석으로


서류요, 괜찮으시다면

__repr__ 메서드는 단순히 Python에게 클래스의 객체를 인쇄하는 방법을 알려줍니다.

그들 사이의 차이점을 확인하기 위한 예(이 소스에서 복사했습니다),

>>> x=4
>>> repr(x)
'4'
>>> str(x)
'4'
>>> y='stringy'
>>> repr(y)
"'stringy'"
>>> str(y)
'stringy'

의 수익률repr()그리고.str()에 대해 동일합니다.int x하지만 반환 값 사이에는 차이가 있습니다.str y하나는 형식적이고 다른 하나는 형식적입니다.공식적인 표현과 비공식적인 표현 사이의 가장 중요한 차이점 중 하나는 기본 구현이 다음과 같습니다.__repr__str 값을 eval 인수로 호출할 수 있으며 반환 값은 다음과 같이 유효한 문자열 개체입니다.

>>> repr(y)
"'a string'"
>>> y2=eval(repr(y))
>>> y==y2
True

의 반환 값을 호출하려고 할 경우__str__평가에 대한 주장으로, 결과는 유효하지 않을 것입니다.

구현하는 모든 클래스에 대해 repr을 구현합니다.변명의 여지가 없어야 합니다.가독성이 모호하지 않은 것보다 더 중요하다고 생각하는 수업에 대해 str을 구현합니다.

다음 링크 참조: https://www.pythoncentral.io/what-is-the-difference-between-str-and-repr-in-python/

언급URL : https://stackoverflow.com/questions/1984162/purpose-of-repr-method

반응형