47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
|
|
class Employee:
|
|
"""A sample Employee class"""
|
|
|
|
num_of_emps = 0
|
|
raise_amt = 1.04
|
|
|
|
def __init__(self, first, last, pay):
|
|
self.first = first
|
|
self.last = last
|
|
self.pay = pay
|
|
|
|
Employee.num_of_emps += 1
|
|
|
|
@property
|
|
def email(self):
|
|
return '{}.{}@email.com'.format(self.first, self.last)
|
|
|
|
@property
|
|
def fullname(self):
|
|
return '{} {}'.format(self.first, self.last)
|
|
|
|
def apply_raise(self):
|
|
self.pay = int(self.pay * self.raise_amt)
|
|
|
|
def __repr__(self):
|
|
return "Employee('{}', '{}', {})".format(self.first, self.last, self.pay)
|
|
|
|
|
|
class Manager(Employee):
|
|
"""A sample Manager class"""
|
|
|
|
def __init__(self, first, last, pay, employees=None):
|
|
super().__init__(first, last, pay)
|
|
self.employees = employees if employees else []
|
|
|
|
def add_emp(self, emp):
|
|
if emp not in self.employees:
|
|
self.employees.append(emp)
|
|
|
|
def remove_emp(self, emp):
|
|
if emp in self.employees:
|
|
self.employees.remove(emp)
|
|
|
|
def __repr__(self):
|
|
return "Manager('{}', '{}', {}, {})".format(self.first, self.last, self.pay, self.employees)
|