파이썬 object의 magic method

파이썬의 객체는 이미 내장되어있는 __가 들어간 method를 활용하여 자신만의 객체를 만들 수 있다

 

 

1. __init__

 

__init__ method는 인자를 받아서 인스턴스 내부에 여러가지 속성을 부여한다.

 

팥과 고구마 붕어빵을 가르는 역할을 해준다는 것

 

 

name과 position, back_number를 받아서 객체에 속성을 부여하는 __init__

 

__init__이 있는경우 초기값을 지정하지 않으면 에러가 남

 

마지막에는 같은 클래스 틀에서 생성되었지만 서로 다른 인스턴스가 된다는 것을 보여준다

 

 

2. __str__

 

__str__ method는 print()하면 출력해주는 내용을 지정해준다

 

 

str method를 지정하지 않으면 메모리 주소만 출력해줌

 

str method로 리턴값을 지정해주면 print()할 때 그 값을 출력해줌

 

 

3. __add__

 

__add__는 두 인스턴스를 더하게 만들어줌

 

 

__add__를 추가하여 더하면 어떤 결과가 나올지 지정해줌

 

 

4. 사용자정의 함수

 

사용자가 직접 정의한 함수를 구현할 수도 있다.

 

이 경우 self 인자를 써야 class내 함수로 인정

 

 

self를 쓰지 않으면 일단 1개 인자를 받아야하는데 2개 받았다고 에러남

 

abc빼고 change_back_number()만 쓰면 파이썬이 이해를 못함

 

 

5. self는 무슨 의미?

 

self는 자기 자신을 인자로 받겠다는 의미임

 

a.function(c)하면 a가 self에 들어가고 c는 function의 다른 인자에 들어간다는 소리

 

 

abc.change_back_number(10)하면 abc가 self에 들어가고 10은 new_number에 들어간다는 소리

 

 

6. 속성(attribute) 출력

 

__init__에 의한 기본 속성을 출력하는 방법

 

 

(instance).(attribute)하면 알아서 출력해줌

 

(instance).(attribute) = (new_value)하면 attribute에 들어가는 값을 바꿀 순 있지만 권장하지는 않는다고함

 

change함수를 객체 내에 정의하여 바꾸라는 소리인듯?

 

 

참고

 

https://corikachu.github.io/articles/python/python-magic-method

 

파이썬 더블 언더스코어: Magic Method | Corikachu

파이썬에서 __를 달고있는 메소드들에 대해서 살펴봅시다.

corikachu.github.io

 

TAGS.

Comments