필자 작성 코드
from abc import *
class Employee(metaclass = ABCMeta):
@abstractclassmethod
def pay(self):
pass
@abstractclassmethod
def data_print(self):
pass
def irumnai_print(self):
print('이름:{}, 나이:{}, '.format(self.irum,self.nai), end = '')
class Temporary(Employee):
def __init__(self, irum, nai, ilsu, ildang):
self.irum = irum
self.nai = nai
self.ilsu = ilsu
self.ildang = ildang
def pay(self):
self.sal = self.ilsu * self.ildang
def data_print(self):
self.pay()
super().irumnai_print()
print('월급:{}'.format(self.sal))
class Regular(Employee):
def __init__(self, irum, nai, salary):
self.irum = irum
self.nai = nai
self.salary = salary
def pay(self):
pass
def data_print(self):
super().irumnai_print()
print('급여:{}'.format(self.salary))
class Salesman(Employee):
def __init__(self, irum, nai, salary, sales, commission):
self.irum = irum
self.nai = nai
self.salary = salary
self.sales = sales
self.commission = commission
def pay(self):
self.salesSal = int(self.salary + self.sales * self.commission)
def data_print(self):
self.pay()
super().irumnai_print()
print('수령액:{}'.format(self.salesSal))
if __name__ == '__main__':
t = Temporary('홍길동', 25, 20, 15000)
r = Regular('한국인', 27, 3500000)
s = Salesman('손오공',29,1200000,5000000,0.25)
t.data_print()
r.data_print()
s.data_print()
이름:홍길동, 나이:25, 월급:300000
이름:한국인, 나이:27, 급여:3500000
이름:손오공, 나이:29, 수령액:2450000
선생님 코드
pay()를 리턴하는 부분
부모의 생성자를 가져와서 인자를 넘겨주는 방식을 사용한 점
from abc import *
class Employee(metaclass = ABCMeta):
def __init__(self, irum, nai):
self.irum = irum
self.nai = nai
@abstractmethod
def pay(self):
pass
@abstractmethod
def data_print(self):
pass
def irumnai_print(self):
print('이름 : ' + self.irum + ', 나이 : ' + str(self.nai), end=' ')
class Temporary(Employee):
def __init__(self, irum, nai, ilsu, ildang):
Employee.__init__(self, irum, nai)
self.ilsu = ilsu;
self.ildang = ildang;
def pay(self):
return self.ilsu * self.ildang
def data_print(self):
self.irumnai_print();
print(', 월급 : ' + str(self.pay()))
class Regular(Employee):
def __init__(self, irum, nai, salary):
super().__init__(irum, nai)
self.salary = salary
def pay(self):
return self.salary
def data_print(self):
self.irumnai_print();
print(', 급여 : ' + str(self.pay()))
class Salesman(Regular):
def __init__(self, irum, nai, salary, sales, commission):
super().__init__(irum, nai, salary)
self.sales = sales;
self.commission = commission
def pay(self):
return super().pay() + (self.sales * self.commission)
def data_print(self):
self.irumnai_print();
print(', 수령액 : ' + str(round(self.pay())))
t = Temporary('홍길동', 25, 20, 150000);
r = Regular('한국인', 27, 3500000)
s = Salesman('손오공', 29, 1200000, 5000000, 0.25)
t.data_print(); r.data_print(); s.data_print()
이름 : 홍길동, 나이 : 25 , 월급 : 3000000
이름 : 한국인, 나이 : 27 , 급여 : 3500000
이름 : 손오공, 나이 : 29 , 수령액 : 2450000
'python' 카테고리의 다른 글
file - open(), read(), close() 등 (0) | 2022.10.11 |
---|---|
예외처리 - try ~ except (0) | 2022.10.11 |
class - 추상클래스 (0) | 2022.10.11 |
class - 다중 상속 (0) | 2022.10.11 |
class - method override (재정의) (0) | 2022.10.11 |