CS

[Python] init, self, super

LULULALA_ 2022. 9. 28. 16:57

init

initialize의 줄임말로, 클래스에 괄호를 붙여서 인스턴스를 만들 때 호출되는 특별한 메서드입니다. 인스턴스를 초기화해주는 역할을 합니다.

클래스 안에서 def __init__() 이렇게 사용합니다.

(__ 을 양쪽에 사용하는 함수는 special method or magic method 라고 하는데, 파이썬에서 자동으로 호출해주는 특별한 함수를 말합니다.)

 

self

인스턴스 자기 자신을 의미. self를 통해서 메서드를 호출할 때 현재 인스턴스가 자동으로 매개변수 self에 들어오도록 할 수 있다.

super

super함수를 사용하면 부모클래스의 속성과 메서드를 호출 할 수 있습니다.

  • 부모 클래스의 초기화 메서드를 호출할 때, super().__init__()를 사용
    ex) 자식 클래스의 def __init__() 에서 부모 클래스의 def __init__() 을 호출해야할 때 사용한다.
  • 자식클래스에서 재정의한 메서드 내에 super().[메서드이름](매개변수)를 입력 부모 클래스의 메서드를 자식 클래스에서 이용하면서 동시에 필요한 부분만 재정의하여 사용할 수 있다.
    ex) 메서드 오버라이딩을 한 자식클래스에서 부모 클래스의 메서드를 이용하고 싶을 때, 재정의한 메서드 내에서 부모 클래스의 메서드를 슈퍼함수로 호출한다.