#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ **ć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): Employee.add_id() self.id = Employee.id self.name = name self.surname = surname def get_id(self): return self.id def __repr__(self): return '' % (self.id,self.name,self.surname) class Recruiter(Employee): def __init__(self,name,surname): super().__init__(name,surname) self.recruited=[] def recruite(self,Employee): self.recruited.append(Employee.get_id()) def __repr__(self): return '' % (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 '' % (self.id, self.name, self.surname) 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) TestFunction()