[Python] 자식클래스에서 부모클래스의 초기화함수(init) 사용

클래스의 초기화 함수

클래스 안에서 __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()
출력 : 부모 클래스

Leave a Comment