반응형
class Person:
def __init__(self, name, phone = None):
self.name = name
self.phone = phone
def __repr__(self):
return ' name = {} , tel = {}'.format(self.name,self.phone)
class Job:
def __init__(self,position,salary):
self.position = position
self.salary = salary
def __repr__(self):
return 'position = {} salary = {}'.format(self.position,self.salary)
class Employee(Person,Job):
def __init__(self,name,phone,position,salary):
Person.__init__(self,name,phone)
Job.__init__(self,position,salary)
def raisesalary(self,rate):
self.salary = self.salary * rate
def __repr__(self):
return Person.__repr__(self) + ' ' + Job.__repr__(self)
e = Employee('gslee',5244,'prof',300)
e.raisesalary(1.5)
print(e) # 출력 : name = gslee , tel = 5244 position = prof salary = 450.0
파이썬은 다중상속이 됩니다.
자바의 경우는 클래스 상속이 한 개만 가능했는데 여기선 이걸 가능하게 만들어버리네요
다중 상속법은 간단합니다.
class Employee(Person,Job)
이와 같이 괄호 안에 상속받을 두개의 클래스를 적으면 됩니다.
하지만 여기서 super().__init__이나 __repr__은 사용하지 못합니다.
super에 해당하는게 Job과 Perosn으로 두개이기 때문이죠 겹치지만 않는다면 상관 없다고 생각합니다만
반응형
'파이썬 (추후 수정)' 카테고리의 다른 글
파이썬 메소드 만들기 (0) | 2021.07.20 |
---|---|
파이썬 추상클래스 (0) | 2021.07.20 |
파이썬 상속 (0) | 2021.07.20 |
파이썬 클래스 (0) | 2021.07.20 |
파이썬 map, filter , lambda (0) | 2021.07.20 |