#!/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`` class Employee: _id = 0 def __init__(self, name, surname): Employee._id += 1 self.id = Employee._id self.name = name self.surname = surname def get_id(self): return self.id class Recruiter(Employee): recruited = [] def recruit(self, Employee): emp_id = Employee.id self.recruited.append(emp_id) class Programmer(Employee): def __init__(self, name, surname, Recruiter): super().__init__(name, surname) self.recruiter = Recruiter.id # setup new employees emp_1 = Employee('Janusz', 'Kowalski') emp_2 = Employee('Marek', 'Marecki') print (emp_1.get_id()) print (emp_2.get_id()) # setup new recruiter rec_1 = Recruiter('Random', 'Recruiter') rec_1.recruit(emp_2) # check for Recruiter print(rec_1.id, rec_1.name, rec_1.surname, rec_1.recruited) # setup new Programmer prog_1 = Programmer('Python', 'Programmer', rec_1) # check for new programmer print(prog_1.id, prog_1.name, prog_1.surname, prog_1.recruiter)