Today_I_Learned/Python
-
__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나 객체 모두를 통해 호출이 가능한 함수.)이므로 다음의 형태들 처럼 호출할 수 ..
-
Python3 locals()Today_I_Learned/Python 2021. 1. 13. 23:43
charsyam.wordpress.com/2018/05/03/%EC%9E%85-%EA%B0%9C%EB%B0%9C-%EC%8B%A0%EB%AC%98%ED%95%9C-python-locals-%EC%9D%98-%EC%84%B8%EA%B3%84/ [입 개발] 신묘한 Python locals() 의 세계 오늘도 약을 팔러온 입개발 CharSyam 입니다. 오늘은 지인 분께서, Python에서 locals() 함수를 쓰면 local 변수를 참조할 수 있는데, 특정 현상은 이해가 안된다고 얘기를 하셔서, 한번 왜 그럴까에 꽃혀 charsyam.wordpress.com stackoverflow.com/questions/22263023/why-does-a-call-to-locals-add-a-reference why ..