forked from tdwojak/Python2017
task01 (labs03) done
This commit is contained in:
parent
fbbf379b04
commit
2b44ac6ffc
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user