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"