Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Employee:
- num_of_emps = 0
- raise_amt = 1.04
- def __init__(self, first, last, pay):
- self.first = first
- self.last = last
- self.email = first + '.' + last + '@example.com'
- self.pay = pay
- Employee.num_of_emps += 1
- def fullname(self):
- return '{} {}'.format(self.first, self.last)
- def apply_raise(self):
- self.pay = int(self.pay * self.raise_amt)
- @classmethod
- def set_raise_amount(cls, amount):
- cls.raise_amt = amount
- @classmethod
- def from_string(cls, emp_str):
- first, last, pay = emp_str.split('-')
- return cls(first, last, pay)
- @staticmethod
- def is_workday(day):
- if day.weekday() == 5 or day.weekday == 6:
- return False
- return True
- def __repr__(self):
- return "Employee('{}', '{}', '{}')".format(self.first, self.last, self.pay)
- def __str__(self):
- return '{} - {}'.format(self.fullname(), self.email)
- #More dunder/magic methods
- def __add__(self, other):
- return self.pay + other.pay
- def __len__(self):
- return len(self.fullname())
- # Method resolution order
- class Developer(Employee):
- raise_amt = 1.10
- def __init__(self, first, last, pay, prog_lang):
- super().__init__(first, last, pay)
- # Employee.__init__(self, first, last, pay) MULTIPLE INHERITANCE
- self.prog_lang = prog_lang
- class Manager(Employee):
- def __init__(self, first, last, pay, employees=None):
- super().__init__(first, last, pay)
- if employees is None:
- self.employees = []
- else:
- self.employees = employees
- 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 print_emp(self):
- for emp in self.employees:
- print('==>', emp.fullname())
- dev_1 = Employee('Corey', 'Schafer', 50000)
- dev_2 = Employee('Test', 'Bran', 60000)
- print(dev_1)
- print(dev_1.__repr__())
- # emp_str_1 = 'John-Doe-7000'
- # emp_str_2 = 'Lara-Johnson-30000'
- # emp_str_3 = 'John-Tatcher-9000'
- # emp_str = Employee.from_string(emp_str_3)
- # print(emp_str.email)
- # dev_1 = Developer('Corey', 'Schafer', 50000, 'Python')
- # dev_2 = Developer('Test', 'Bran', 60000, 'Java')
- # mgr_1 = Manager('Tsue', 'Gina', 90000, [dev_1])
- # print(mgr_1.email)
- # mgr_1.print_emp()
- # isinstance(mgr_1, Developer)
- # isinstance(mgr_1, Manager)
- # isinstance(mgr_1, Employee)
- # issubclass(Manager, Employee)
- # issubclass(Employee, Manager)
- # print(mgr_1.prog_lang)
- # print(help(Developer))
- # print(help(Developer))
- # import datetime
- # my_date = datetime.date(2016, 6, 7)
- # print(Employee.is_workday(my_date))
- # Employee.set_raise_amount(1.05)
- # print(Employee.raise_amt)
- # print(emp_1.raise_amt)
- # print(emp_2.raise_amt)
- # print('I am here')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement