파이썬 스펙상으로는 스페셜 메서드라고 한다. 쉽게 말해 빌트인 메서드들이다.
💡 공식 문서 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이다.