forked from tdwojak/Python2017
58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
#!/usr/bin/env python2
|
|
# -*- coding: utf-8 -*-
|
|
|
|
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
|
|
|
|
|
|
|