EDUCATION/DSS Online 6기

DAY6 - Special method

Kululu_ 2021. 1. 16. 11:39

Special(Magic) method

- compare

    - __eq__ : ==

    - __ne__ : !=

    - __lt__ : <

    - ...

 

- calculate

    - __add__ : +

    - __sub__ : -

    - ...

 

- __repr__ : 객체의 내용을 출력( 객체 )

- __str__ : 객체의 내용을 출력( print(객체) )

 

- 스페셜 메소드는 우리가 흔히 사용하는 ==, != 와 같은 비교 연산자부터 +,- 와 같은 산술 연산자 그리고 객체의 출력과 같은 기능을 담당하는 메소드들입니다.

- 실제로 같은 + 연산을 하더라도 int 타입에서의 +와 str 타입에서의 + 가 다르게 작동하는 이유가 스페셜메소드의 기능을 다르게 설정해주었기 때문입니다.

 

* Txt 라는 클래스를 선언하고 비교 연산 시 무조건 소문자로 비교하게끔 만들어보겠습니다.

str 타입을 이용하여 비교 연산 시 False라는 결과값이 반환됩니다.

 

"=="의 기능을 객체에 담긴 txt 변수를 소문자로 바꿔 비교하게끔 만들어주었더니 True라는 결과값이 반환됩니다.

 

* str 타입처럼 객체에 담긴 데이터가 출력되도록 만들어 보겠습니다.

위와 같이 설계한 클래스는 <__main__.~~>라는 내용을 반환합니다.

 

__repr__ 이라는 스페셜 메소드를 클래스 내에서 다시 정의해준다면 원하는 결과를 얻을 수 있습니다.