한 마디로 super().__init__()은 부모 클래스의 속성 및 메소드를 가져오는 것이다.

class A():
    def __init__(self):
        print ('[*] This is class A')

class B(A):
    def __init__(self):
        super().__init__()
        
if __name__ == "__main__":
    b = B()
(base) C:\github>python test.py
[*] This is class A

 

부모 클래스의 속성 가져오기

A 클래스에 self.name이라는 속성을 추가하였다. 상속을 받는 B 클래스에서는 self.name을 가져와서 사용할 수 있다.

class A():
    def __init__(self):
        self.name = "roytravel"
        print ('[*] This is class A')

class B(A):
    def __init__(self):
        super().__init__()
        print (self.name)
        
if __name__ == "__main__":
    b = B()
(base) C:\github>python test.py
[*] This is class A
roytravel

 

부모 클래스의 메소드 가져오기

A 클래스에 print_name이라는 메소드를 추가하였다. 이후 B 클래스에서 super를 통해 A 클래스의 메소드에 접근할 수 있다.

class A():
    def __init__(self):
        self.name = "roytravel"
        print ('[*] This is class A')
    
    def print_name(self):
        print (self.name)

class B(A):
    def __init__(self):
        super().__init__()
        super().print_name()
        
if __name__ == "__main__":
    b = B()
(base) C:\github>python test.py
[*] This is class A
roytravel

 

 

+ Recent posts