Python2017/labs04/zad2_lab4.py

46 lines
1.7 KiB
Python
Raw Normal View History

2017-12-14 16:45:47 +01:00
'''
**ćwiczenie 2**
Napisz prostą hierarchię klas:
* Klasa bazowa ``Employee``, która będzie zawierać informacje o imieniu i nazwisku pracownika. Ponadto każdy pracownik otrzyma numer ``id``, który będzie unikatowy.
Wykorzystaj do tego atrybut statyczny. Napisz metodę ``get_id``, która zwraca identyfikator pracownika.
* Klasy pochodna: ``Recruiter``, która ma dodatkową mtodę ``recruit``, która jako parament przyjmuje obiekt ``Employee`` i zapisuje jego ``id`` w liście ``self.recruited``.
* Klasa pochodna ``Programmer``. Klasa ``Programmer`` ma przyjąć w konstruktorze podstawowe informacje (imię i nazwisko) oraz obiekt rekturera.
Ponadto stwórz atrybut ``recruiter``, który będzie przechowywać ``id`` rekrutera.
'''
class Employee:
ID_COUNTER = 1000
def __init__(self, first_name, second_name):
self.first_name = first_name
self.second_name = second_name
self.id = Employee.ID_COUNTER
Employee.ID_COUNTER += 1
def get_id(self):
return self.id
class Recruiter(Employee):
def __init__(self, first_name, second_name):
Employee.__init__(self, first_name, second_name)
self.recruited = []
def recruit(self, employee):
self.recruited.append(employee.get_id())
class Programmer(Employee):
def __init__(self, first_name, second_name, recruiter):
Employee.__init__(self, first_name, second_name)
self.recruiter = recruiter.get_id()
employee1 = Employee('John', 'Smith')
print(employee1.get_id())
employee2 = Employee('Bob', 'Marley')
print(employee2.get_id())
recruiter1 = Recruiter('Recruiter', 'Andy')
recruiter1.recruit(employee1)
programmer1 = Programmer('Programmer', 'Frank', recruiter1)