새소식

반응형
Python

super().__init__()

  • -
반응형

super().__init__()

: 부모 클래스의 초기화 메서드 호출하기

: 자식 클래스에서 상속한 부모 클래스의 초기화 메서드가 필요할때 사용한다.

 

class ParentObo():
    def __init__(self, what, power):
        self.what_data = what
        self.power_data = power

class Obo(ParentObo):
    def __init__(self, d_name):
        self.name = d_name

    def info(self):
        print("what_data : " + self.power_data)
        print("what_data : " + self.what_data)       
        print("what_data : " + self.power_data)


test = Obo("obo")
test.info()

#결과
name : obo
AttributeError: 'Obo' object has no attribute 'what_data'

 

위 내용은 Obo(ParentObo) 라는 클래스가 ParentObo 부모 클래스를 상속하여 부모 클래스의

what_data 와 power_data 를 호출했으나 에러가 났다. 이유는 부모 클래스의 초기화 데이터를 사용하기 위해선

super().__init__() 를 자식 클래스에 추가해야한다.

 

class ParentObo():
    def __init__(self, what, power):
        self.what_data = what
        self.power_data = power

class Obo(ParentObo):
    def __init__(self, d_name):
        super().__init__("what_data", "power_data")
        self.name = d_name

    
def info(self):
        print("what_data : " + self.power_data)
        print("what_data : " + self.what_data)
        print("what_data : " + self.power_data)


test = Obo("obo")
test.info()

#결과
name : obo
what_data : what_data
power_data : power_data

 

 

* 상속

class "클래스명"(상속할 부모클래스명):

 

class ParentObo():
    def __init__(self):
        self.name = "obo"


class Obo(ParentObo):
    def __init__(self):
        self.weight = "75"
반응형

'Python' 카테고리의 다른 글

Django  (0) 2022.02.21
모듈 가져오기(import, from 모듈 import 이름)  (0) 2021.12.01
__name__ = "__main__"  (0) 2021.12.01
Class, Object, __init__, __init__(self)  (0) 2021.11.29
__init__.py 역할  (0) 2021.11.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.