''' **ć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)