ЮляГУЙ http://lurkmore.ru/GUI :)
sypper-pit, что такое GUI?
Юля“дзен питон”
не поняла последнего сообщения.
# -*- coding: utf-8 -*-
"""
Учет внутриофисных расходов
"""
import itertools \\ подключается модуль
class Collaborator: \\Для класса сотрудник определяем параметры: имя, фамилия, отчество и код.
"""
Сотрудник
"""
def __init__(self, code, family, name, patronym): \\ для инициализации атрибутов класса
self.code = code
self.family = family
self.name = name
self.patronym = patronym
def __str__(self): \\ преобразует объезт в строку, как понимаю для дальнейшего вывода
return "%s %.2s. %.2s." % (self.family, self.name, self.patronym)
def __hash__(self): \\ позволяет использовать объект класса в качестве элемента словарей и множеств
return hash(self.code)
def __eq__(self, other): \\ для разрешения коллизий если 2 объекта имеют одинаковый хеш
return self.code == other.code
sypper-pitвсе равно непонятно
“дзен питон”
sypper-pitвот до остального еще дойти надо
остальное на питоне
>>> print "sdfg" #dfg
sdfg
>>> print "sdfg" //dfg
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dfg' is not defined
>>>
class Otdel:
"""
Отдел
"""
def __init__(self, name):
self.name = name
self.collaborators = set()
self.otdels = set()
def __hash__(self):
return hash(self.name)
def __eq__(self, other): #тоже самое что и в предыдущем классе
return self.name == other.name
def __iter__(self): # итератор
i = iter(self.collaborators)
for s in self.otdels:
i = itertools.chain(i, iter(s))
return i #не очень понятно что он возвращает но вроде бы последовательность из сотрудников и отдела к которому они относятся. Я права?
def add(self, collaborator): #функция для добавления сотрудника к отделу.
assert collaborator not in self #проверяет если нового сотрудника еще нет в отделе то добавляет его
self.collaborators.add(collaborator)
def addOtdel(self, otdel): #функция для добавления отделов
assert otdel not in self.otdels
assert not set(self).intersection(set(otdel))#запрещает добавлять подразделение, если в нем есть хотя бы один сотрудник который есть уже в этом подразделении
self.otdels.add(otdel)
def iterOtdel(self): #итератор для отделов и подотделов
i = iter(self.otdels)
for s in self.otdels:
i = itertools.chain(i, s.iterOtdel())
return i #как я понимаю позволяет определить какие подотделы находятся в отделе, выводит подотделы каждого отдела