클래스의 초기화 함수
클래스 안에서 __init__이라는 이름의 함수를 구현하면 파이썬은 이를 초기화 함수로 인식합니다. 초기화함수는 클래스를 선언함과 동시에 호출하여 수행합니다.
__init__의 __은 언더바 두개입니다.
class Parent():
def __init__(self):
print('출력 : 부모 클래스')
if __name__ == '__main__':
Parent()
출력 : 부모 클래스
상속과 초기화 함수
상속받은 자식클래스와 부모클래스 둘 다 초기화함수가 존재하는 경우, 자식클래스 선언 시 자식클래스의 초기화함수만 호출됩니다.
class Parent():
def __init__(self):
print('출력 : 부모 클래스')
class Child(Parent):
def __init__(self):
print('출력 : 자식 클래스')
if __name__ == '__main__':
Child()
출력 : 자식 클래스
상속받은 자식 클래스에서 부모 클래스의 초기화함수를 호출하기 위해서는 자식클래스의 초기화함수에 부모클래스의 초기화함수를 호출하는 super().init()를 사용합니다.
class Parent():
def __init__(self):
print('출력 : 부모 클래스')
class Child(Parent):
def __init__(self):
super().__init__()
print('출력 : 자식 클래스')
if __name__ == '__main__':
Child()
출력 : 부모 클래스
출력 : 자식 클래스
만약 부모클래스에만 초기화함수가 존재한다면 부모클래스의 초기화함수가 자동으로 호출됩니다.
class Parent():
def __init__(self):
print('출력 : 부모 클래스')
class Child(Parent):
pass
if __name__ == '__main__':
Child()
출력 : 부모 클래스