클래스의 초기화 함수
클래스 안에서 __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()
출력 : 부모 클래스