1. __repr__()
- 객체의 상태를 개발자가 쉽게 이해할 수 있도록 반환합니다.
- 재생성 할 수 있는 코드를 출력합니다.

eval()
- 파이썬 내장 함수로 문자열로 표현된 파이썬 코드를 실행하고 그 결과를 반환하는 기능

Dog(name='루시', age=14)를 return하니까
eval()에 위 결과 결과를 리턴하면 새로운 객체를 만들 수 있는것이다.
따라서 new_Rucy = Dog(name='루시', age=14)를 한것과 같다.
2. __str__()
- 객체가 사람이 이해하기 쉽게 표현되도록 문자열로 반환하는 역할


리스트 class와 문자열로 나온 객체는 다르다.
따라서 list클래스의 str()은 요소를 뽑아 반환하는 걸로 정의되어있다고 생각할 수 있다.
즉, 타입에 따라 따로따로 정의되어있다고 볼 수 있는것이다.
3. __add__()
- 연산자 오버로딩 메서드로 '+' 연산이 정의되어있음.
- '+' 연산자를 사용했을 경우 그 동작을 커스터마이즈 하기 위해 사용

+ 가 __add__() 함수를 호출했다고 보면 된다.
4. __len__()
- 객체의 길이(또는 크기)를 반환하는 메서드로 len()함수가 호출 될 때 자동으로 실행됨

len() 함수가 호출 될 때 자동으로 실행된다고 해서 재귀함수 처럼 사용된다고 생각 할 수 있지만,
콜백함수 구조에 좀 더 가까운 구조라고 생각하면된다.
5. __getitem__()
- 객체를 리스트나 딕셔너리처럼 인덱싱 할 수 있도록 해주는 메서드
- __getitem__()을 오버라이드 하면, 사용자 정의 클래스의 인스턴스에서도 인덱스, 키, 슬라이싱 등을 사용해 요소에 접근 할 수 있게됨

__add__() 처럼 [ ] 를 사용해서 호출 한다고 볼 수 있다.
object 에서는 아마 try except(예외처리 구문)를 사용해서 오류를 띄웠을 것이다.
6. __call()__
- 클래스의 인스턴스를 함수처럼 호출할 수 있게 만들어주는 메서드

설명하기 쉽게 args와 kwargs로 변수를 설정하였다.
* 는 몇개의 매개변수가 들어올 수 있는 지 모를 때 사용하고 ** 는 *의 기능에 딕셔너리 형태로 매개변수를 받는 것이다.
'Python' 카테고리의 다른 글
| Python 모듈(in Colab) (0) | 2024.10.01 |
|---|---|
| Python 예외처리 (0) | 2024.09.30 |
| Python 상속 (0) | 2024.09.27 |
| 객체 지향과 클래스 (2) | 2024.09.27 |
| 콜백함수와 람다함수 (2) | 2024.09.26 |