1
0
Fork 0
Python2017/labs04/task02.py

58 lines
1.6 KiB
Python
Raw Permalink Normal View History

2017-12-03 13:05:05 +01:00
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
2017-12-14 12:28:39 +01:00
import random
random.seed(a=0)
# Klasa bazowa, która zawiera informacje o imieniu i nazwisku pracownika.
# Każdy pracownik posiada unikatowy numer 'id'.
class Employee:
# atrybut statyczny
id = 0
def __init__(self, firstname = 'Anonim', lastname = 'Gal'):
self.firstname = firstname
self.lastname = lastname
self.id = random.randrange(10000000, 50000000, 1)
# Metodę 'get_id', która zwraca identyfikator pracownika.
def get_id(self):
return self.id
# Klasy pochodna posiadająca dodatkową metodę 'recruit', która jako parament przyjmuje
# obiekt 'Employee' i zapisuje jego 'id' w liście 'self.recruited'.
class Recruiter(Employee):
def recruit(self, employee):
self.recruited = employee.get_id()
# Klasa pochodna przyjmuje w konstruktorze podstawowe informacje (imię i nazwisko)
# oraz obiekt rekturera. Ponadto posiada ona atrybut 'recruiter', który będzie
# przechowywał 'id' rekrutera.
class Programmer(Recruiter):
def __init__(self, firstname, lastname, recruiter_obj):
self.firstname = firstname
self.lastname = lastname
self.recruiter = recruiter_obj
recruiter = recruiter_obj.recruited
self.id = random.randrange(50000000, 100000000, 1)
pracownik = Employee('Jurek', 'P')
print pracownik.get_id()
rekruter = Recruiter('Kasia', 'P')
print rekruter.get_id()
rekruter.recruit(pracownik)
print rekruter.get_id()
programista = Programmer('Maciej', 'W', rekruter)
print programista.get_id()
rekruter.recruit(programista)
print rekruter.get_id()
print Employee.id