2017-12-03 13:05:05 +01:00
|
|
|
#!/usr/bin/env python2
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
2017-12-03 15:36:13 +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=0
|
|
|
|
@staticmethod
|
|
|
|
def add_id():
|
|
|
|
Employee.id+=1
|
|
|
|
return id
|
|
|
|
|
|
|
|
def __init__(self, name, surname):
|
2017-12-14 18:09:05 +01:00
|
|
|
Employee.add_id()
|
|
|
|
self.id = Employee.id
|
|
|
|
self.name = name
|
2017-12-03 15:36:13 +01:00
|
|
|
self.surname = surname
|
|
|
|
|
|
|
|
def get_id(self):
|
|
|
|
return self.id
|
|
|
|
|
2017-12-14 18:09:05 +01:00
|
|
|
def __repr__(self):
|
|
|
|
return '<Employee, %s, %s %s>' % (self.id,self.name,self.surname)
|
2017-12-03 15:36:13 +01:00
|
|
|
|
|
|
|
|
2017-12-14 18:09:05 +01:00
|
|
|
class Recruiter(Employee):
|
|
|
|
def __init__(self,name,surname):
|
|
|
|
super().__init__(name,surname)
|
|
|
|
self.recruited=[]
|
2017-12-03 15:36:13 +01:00
|
|
|
|
|
|
|
def recruite(self,Employee):
|
2017-12-14 18:09:05 +01:00
|
|
|
self.recruited.append(Employee.get_id())
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
return '<Recruiter, %s, %s %s>' % (self.id, self.name, self.surname)
|
|
|
|
|
|
|
|
class Programmer(Employee):
|
|
|
|
def __init__(self,name,surname,Recruiter):
|
|
|
|
super().__init__(name,surname)
|
|
|
|
self.recruiter = Recruiter.get_id()
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
return '<Programmer, %s, %s %s>' % (self.id, self.name, self.surname)
|
2017-12-03 15:36:13 +01:00
|
|
|
|
2017-12-14 18:09:05 +01:00
|
|
|
def TestFunction():
|
|
|
|
pracownik_przemek=Employee('Przemyslaw','Kaczmarek')
|
|
|
|
print(pracownik_przemek.name,pracownik_przemek.surname)
|
|
|
|
pracownik_michal=Employee('Michał','Kowalski')
|
|
|
|
rekruter_mariusz=Recruiter('Mariusz','Małysz')
|
|
|
|
programista_adam=Programmer('Adam','Kowalski',rekruter_mariusz)
|
|
|
|
rekruter_maciej=Recruiter('Maciej','Fisko')
|
|
|
|
rekruter_maciej.recruite(pracownik_przemek)
|
|
|
|
rekruter_maciej.recruite(rekruter_mariusz)
|
|
|
|
rekruter_mariusz.recruite(programista_adam)
|
|
|
|
rekruter_mariusz.recruite(pracownik_michal)
|
|
|
|
print('Maciej zrekrutowal: ',rekruter_maciej.recruited)
|
|
|
|
print('Mariusz zrekrutowal: ',rekruter_mariusz.recruited)
|
|
|
|
print('Adam zostal zrekrutowany przez: ',programista_adam.recruiter)
|
|
|
|
print('Liczba pracownikow: ',Employee.id)
|
|
|
|
print(pracownik_przemek)
|
|
|
|
print(pracownik_michal)
|
|
|
|
print(rekruter_mariusz)
|
|
|
|
print(programista_adam)
|
|
|
|
print(rekruter_maciej)
|
2017-12-03 15:36:13 +01:00
|
|
|
|
|
|
|
|
2017-12-14 18:09:05 +01:00
|
|
|
TestFunction()
|
2017-12-03 15:36:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
|