파이썬 스펙상으로는 스페셜 메서드라고 한다. 쉽게 말해 빌트인 메서드들이다.
💡 공식 문서 https://docs.python.org/3/reference/datamodel.html
공식문서에 한글도 지원하니 꼭 읽어보자.
그런데… 이거 그냥 빌트인 메서드라고 이해하고 넘어가기엔 파이썬만의 큰 특장점인듯 하다. 생각해보면 프레임워크나 라이브러리 수준의 빌트인 메서드들은 많았는데, 언어차원의 빌트인 메서드들이 있었는가? 자바 내장함수, JS내장함수 이런게 있었나…? 자바에서 사용가능한 메서드들은 모두
Object
에 속해있거나, 어떤 유틸 클래스들에 속해있었고, JS도 마찬가지임… 그런데 파이썬의 빌트인 메서드들은 빌트인 모듈이라는 곳에 속해있고, 그냥 파이썬 언어차원에서 제공하는 메서드들인듯 하다. 그리고 예를들어 내부적으로__len__
이란 빌트인이 있다면, 이를 각 내장 클래스들이 알아서len()
이란 이름으로 오버라이딩해놔서… 그냥 개발자는 모두 통일된len()
으로 길이를 얻어낼 수 있다. 확실히 역사가 긴 다른 언어보다는 더 통일감이 있다..
💡 문서를 더 읽어보니..
len()
은 내장 함수(function)이다. 내장 메서드(method)와는 분명히 다르다. 이런 내장 함수들은 모두 C로 작성되어있다. 자바의 navtive method와 유사한 개념인듯.
💡 그리고 위 문서를 읽어보니… 지금 강의에서 가르치는 매직메서드란 용어를 제대로 알고 사용해야할거같다.
__xx__
형태를 갖고 있다고 다 매직메서드, 스페셜 메서드 이렇게 부르는건 아닌듯. 이것도 JS와 유사하게 어떤 어트리뷰트인데, (문서에서도 attribute라고 한다.) 거기서 커스터마이징이 가능한 부분이 있고, 아닌듯? 이건 문서를 더 읽어봐야 할거 같다.
파이썬을 잘 알기위해선 다음의 개념을 잘 알고 있어야 한다고 한다…
파이썬에선 모든 대상이 객체이다.
심지어 기본 데이터 타입인 int, float들도 모두 class이다.