Python

Python 스페셜 Method

dldbwls0818 2024. 9. 30. 13:52

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(keyword args)

설명하기 쉽게 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