1. object.__repr__(self)
자바의 toString() 메서드와 같이 객체의 공식적인 문자열 표현을 수행하는 built-in 함수이다. 해당 객체를 인간이 이해할 수 있는 형태로 표현해주는 메서드로 repr의 결과를 통해서 같은 값을 가지는 새로운 객체를 만들 수 있는 python 표현이나, 해당 객체에 대한 설명 등을 얻을 수 있다. 보다 개발자 친화적인 결과를 반환하는데 사용된다.
만약 __str__() 이 정의되어 있지 않은 경우에 __repr__() 이 객체의 정보에 대한 표현에도 사용된다. 주로 디버깅에 사용된다.
2. object.__str__(self)
str(object)나 format(), print() 등의 함수를 호출 시에 사용되는 객체의 표현법이다. 반환 타입은 str 이다. __repr__() 과는 달리 해당 객체에 대한 정확한 python 표현 보다는 사람이 이해하기에 쉬운 설명을 반환하는데 사용된다.
기본적으로 object 타입은 object.__repr__()을 호출하도록 구현되어 있다.
3. object.__bytes__(self)
bytes 를 호출하여 객체의 byte-string 연산을 수행한다. bytes 객체를 결과로 반환한다.
4. object.__format__(self, format_spec)
Built-in 함수인 format() 에 의해서 호출된다. 형식화 된 문자열 리터럴이나 str.format() 메서드에 의해서 형식화 된 문자열을 생성한다. 객체를 나타내는 format을 지정하고 싶을 때 사용한다.
Format_spec 인자는 형식 지정 옵션에 대한 설명이 포함된 문자열이다.
class ReprTest:
def __init__(self, value: str):
self.value = value
def __repr__(self):
return "ReprTest : value = {}".format(self.value)
def __bytes__(self):
return str.encode(self.value)
def __format__(self, format="default"):
if format == "short":
return "value = {}".format(self.value)
else format == "long":
return "ReprTest : value of this instance is {}".format(self.value)
return "ReprTest : value = {}".format(self.value)
'프로그래밍언어 > Python' 카테고리의 다른 글
[Python] copy (0) | 2022.02.08 |
---|---|
[Python] Magic method - 속성 관리 (0) | 2021.12.16 |
[Python] Magic method - 객체 생성, 초기화 (0) | 2021.12.15 |
[Python] urlparse (0) | 2021.10.16 |
[Python] argparser (0) | 2021.09.11 |