magicmethod
-
__new__, __init__, __call__ Magic method 정리Today_I_Learned/Python 2021. 1. 15. 22:53
셋 다 Class의 기본 함수들로, C나 C++의 생성자 역할을 한다고 보면 된다. 다만 상황에 따라 각각의 쓰임새가 다르다. 먼저 Python3에서는 모든 Class가 Object class를 내부적으로 상속받도록 되어 있다. 그리고 Object Class가 __new__, __init__, __call__을 갖고 있기 때문에 이 세 함수를 override하는 것이 가능하다. Override하지 않으면 내부적으로 정의된 내용(object에서 정의된 내용)으로 자동 실행된다고 보면 된다. __new__ 실질적으로 객체를 생성하는 동작을 하는 함수로 객체 생성 시 자동으로 호출된다. static method (Class나 객체 모두를 통해 호출이 가능한 함수.)이므로 다음의 형태들 처럼 호출할 수 ..