반응형
질문
클래스 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__()
반응형
댓글