파이썬 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
'프로그래밍 > Python' 카테고리의 다른 글
class내에서 method 내부에 다른 method 호출하기 (0) | 2022.03.25 |
---|---|
파이썬 객체의 3가지 특징 상속성(inheritance), 다형성(polymorphism), 가시성(visibility) (0) | 2022.02.20 |
파이썬의 지역변수와 전역변수 (0) | 2022.02.17 |
프로그래밍을 한다면 꼭 알아야하는 파일형식 csv, html, xml, json (0) | 2022.02.14 |
파이썬 프로그래밍 정규표현식 사용하는법 (0) | 2022.02.12 |