#!/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 - atrybut statyczny - counter. #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(object): id = 0 lista_id = [] def __init__(self, name, surname): self.name = name self.surname = surname self.id = Employee.id Employee.id += 1 self.lista_id.append(self.id) def get_id(self): return(self.id) class Recruiter(Employee): def __init__(self, name, surname): Employee.__init__(self, name, surname) self.recruited = [] def recruit(self, id): if id != self.id: if id in Employee.lista_id: self.recruited.append(id) else: print('Nie ma takiego pracownika!') else: print('Rekruter nie może zrekrutować samego siebie!') def __str__(self): return (f'Rekruter {self.name} {self.surname} zrekrutowal pracownikow o nastepujacych id: {self.recruited}') class Programmer(Recruiter): def __init__(self, name, surname, recruiter): Recruiter.__init__(self, name, surname) Recruiter.id = recruiter def recruited_by_who(self): print (f'Programista {self.name} {self.surname} zostal zrekrutowany przez rekrutera o nastepujacym id: {Recruiter.id}') print('-------------------------') pracownik1 = Employee('Stefan', 'Stefanski') print(pracownik1.name) print(pracownik1.surname) print(pracownik1.get_id()) print(pracownik1.id) pracownik2 = Employee('Karol', 'Karolinski') print(pracownik2.name) print(pracownik2.surname) print(pracownik2.get_id()) print(pracownik2.id) pracownik3 =Recruiter('Kasia', 'Kasinska') print(pracownik3.name) print(pracownik3.surname) print(pracownik3.id) pracownik3.recruit(5) pracownik3.recruit(0) pracownik3.recruit(1) print(pracownik3) pracownik4 = Programmer('Bozena','Bozeniasta', 2) print(pracownik4.name) print(pracownik4.surname) print(pracownik4.id) print(pracownik4.get_id()) pracownik4.recruited_by_who() print('-------------------------') print(Employee.id) print(Employee.lista_id) print('-------------------------')