6.6 부모에게 도움 받기 - super

  • 자식클래스에서 부모클래스의 메소드를 호출 하고 싶다면 super()
    class Person():
    def __init__(self, name):
    self.name = name
    
    class EmailPerson(Person):
    def __init__(self, name, email):
    super().__init__(name)
    self.email = email
    
    • super() 메서드는 부모 클래스(Person)의 정의를 얻는다.
  • __init__() 메서드는 Person.__init__() 메서드를 호출한다. 이 메서드는 self 인자를 슈퍼클래스로 전달하는 역활을 한다. 그러므로 슈퍼클래스에 어떤 선택적 인자를 제공하기만 하면 된다. 이경우 Person()에서 받는 인자는 name이다.
  • self.email = emailEmailPerson 클래스를 Person클래스와 다르게 만들어주는 새로운 코드다.
    bob = EmailPerson('Bob Frapples', 'bob@frapples.com')
    
    bob.name
    

    ‘Bob Frapples’

    bob.email
    

    ‘bob@frapples.com’

    자식클래스가 자신의 방식으로 뭔가를 처리하지만, 아직 부모 클래스로부터 뭔가를 필요로 할때(현실에서의 부모/자식처럼)는 super() 메서드를 사용한다.

Comments