프로그래밍 언어/Python

파이썬에서 슈퍼 생성자를 호출하는 방법

Rateye 2021. 11. 29. 00:30
728x90
반응형
질문 : 파이썬에서 슈퍼 생성자를 호출하는 방법은 무엇입니까?

class A:
    def __init__(self):
        print("world")

class B(A):
    def __init__(self):
       print("hello")

B()  # output: hello

다른 모든 언어에서 슈퍼 생성자로 작업 한 것은 암시 적으로 호출됩니다. 파이썬에서 어떻게 호출합니까? 나는 super(self) 기대하지만 이것은 작동하지 않습니다.

답변

다른 답변과 함께 슈퍼 클래스 메서드 (생성자 포함)를 호출하는 여러 방법이 있지만 Python-3.x에서는 프로세스가 단순화되었습니다.

Python-2.x

class A(object):
 def __init__(self):
   print "world"

class B(A):
 def __init__(self):
   print "hello"
   super(B, self).__init__()

Python-3.x

class A(object):
 def __init__(self):
   print("world")

class B(A):
 def __init__(self):
   print("hello")
   super().__init__()

super() 는 이제 docs에 super(<containing classname>, self) 와 동일합니다.

출처 : https://stackoverflow.com/questions/2399307/how-to-invoke-the-super-constructor-in-python
728x90
반응형