#!/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