|
| 1 | + |
| 2 | +class Employee: |
| 3 | + |
| 4 | + raise_amt = 1.04 |
| 5 | + |
| 6 | + def __init__(self, first, last, pay): |
| 7 | + self.first = first |
| 8 | + self.last = last |
| 9 | + self.email = first + '.' + last + '@email.com' |
| 10 | + self.pay = pay |
| 11 | + |
| 12 | + def fullname(self): |
| 13 | + return '{} {}'.format(self.first, self.last) |
| 14 | + |
| 15 | + def apply_raise(self): |
| 16 | + self.pay = int(self.pay * self.raise_amt) |
| 17 | + |
| 18 | + |
| 19 | +class Developer(Employee): |
| 20 | + raise_amt = 1.10 |
| 21 | + |
| 22 | + def __init__(self, first, last, pay, prog_lang): |
| 23 | + super().__init__(first, last, pay) |
| 24 | + self.prog_lang = prog_lang |
| 25 | + |
| 26 | + |
| 27 | +class Manager(Employee): |
| 28 | + |
| 29 | + def __init__(self, first, last, pay, employees=None): |
| 30 | + super().__init__(first, last, pay) |
| 31 | + if employees is None: |
| 32 | + self.employees = [] |
| 33 | + else: |
| 34 | + self.employees = employees |
| 35 | + |
| 36 | + def add_emp(self, emp): |
| 37 | + if emp not in self.employees: |
| 38 | + self.employees.append(emp) |
| 39 | + |
| 40 | + def remove_emp(self, emp): |
| 41 | + if emp in self.employees: |
| 42 | + self.employees.remove(emp) |
| 43 | + |
| 44 | + def print_emps(self): |
| 45 | + for emp in self.employees: |
| 46 | + print('-->', emp.fullname()) |
| 47 | + |
| 48 | +dev_1 = Developer('Corey', 'Schafer', 50000, 'Python') |
| 49 | +dev_2 = Developer('Test', 'Employee', 60000, 'Java') |
| 50 | + |
| 51 | +mgr_1 = Manager('Sue', 'Smith', 90000, [dev_1]) |
| 52 | + |
| 53 | +print(mgr_1.email) |
| 54 | + |
| 55 | +mgr_1.add_emp(dev_2) |
| 56 | +mgr_1.remove_emp(dev_1) |
| 57 | + |
| 58 | +mgr_1.print_emps() |
0 commit comments