diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/labs04/task02.py b/labs04/task02.py index 88741a4..7811b94 100644 --- a/labs04/task02.py +++ b/labs04/task02.py @@ -1,3 +1,87 @@ #!/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 + + def __init__(self, name, surname): + self.name = name + self.surname = surname + self.id = Employee.id + Employee.id += 1 + + 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: + self.recruited.append(id) + 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}') + + + + +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) +print(pracownik3.recruit(5)) +print(pracownik3.recruit(0)) +print(pracownik3.recruit(1)) + +print(pracownik3) + +pracownik4 = Programmer('Bozena','Bozeniasta', 2) +print(pracownik4.name) +print(pracownik4.surname) +print(pracownik4.id) +print(pracownik4.get_id()) +print(pracownik4.recruited_by_who()) + +print('-------------------------') +print(pracownik1.id) +print(pracownik2.id) +print(pracownik3.id) +print(pracownik4.id)