[Python3]__init__ 및new__ 방법의 차이

1220 단어 Python3
python이 대상을 대상으로 하는 것을 배울 때 __init__() 방법을 자주 접하지만 __new__() 방법은 비교적 적게 접촉한다. 이들의 작용과 차이점을 기록한다.

[Python3] __init__ 및new__ 차이점

  • 우선__init__은 실례적인 방법이고 __new__는 정적 방법
  • __init__()는 그의 이름처럼 초기화 대상에 사용되며, 대상이 생성된 후에 자동으로 호출되기 때문에 우리가 자주 사용하는 다음과 같은 문구가 생겼다
  • def __init__(self, arg):
    	super().__init__(arg)
    
  • 그리고 __new__ 방법은 대상을 만드는 방법이다. 정적 방법으로 최소한 하나의 매개 변수cls가 있어야 한다. 현재 생성할 대상의 클래스는 +() 형식으로 대상을 만들 때 먼저 __new__ 방법으로 대상을 만들고 cls 매개 변수도 자동으로 제시하며 그 다음에 __init__를 사용하여 대상을 초기화한다
  • (이 점에서python은 C 시리즈 언어나java와 다르다. 개인적으로는 이 디자인이python의 동적 언어 특성을 더욱 나타냈다고 생각한다)

    좋은 웹페이지 즐겨찾기