본문 바로가기

프로그래밍언어/Python

[Python] Magic method - 객체 표현

반응형

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