본문 바로가기
Python/Python FAQ

Python 파이썬에서 슈퍼 생성자를 호출하는 방법은 무엇인가요?, How to invoke the super constructor in Python?

by 베타코드 2023. 10. 17.
반응형

질문


클래스 A:
    def __init__(self):
        print("world")

클래스 B(A):
    def __init__(self):
       print("hello")

B()  # 출력: hello

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


답변


다른 답변들과 일치하게, 슈퍼 클래스 메소드(생성자 포함)를 호출하는 여러 가지 방법이 있지만, Python 3에서는 이 과정이 단순화되었습니다:

Python 3

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

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

Python 2

Python 2에서는 약간 더 상세한 버전인 super(<포함하는 클래스 이름>, self)를 호출해야 하는데, 이는 문서에 따르면 super()와 동등합니다.

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

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

댓글