Не могу понять что не так с табуляцией
Python:
import heapq
from collections import namedtuple
Task = namedtuple('Task', 'priority, id, content')
class TaskFlow:
def __init__(self):
self._queue = []
self._id = 0
def add_task(self, priority, content):
self._id += 1
# минус priority, чтобы доставать задачи с наибольшим приоритетом
heapq.heappush(self._queue,
Task(-priority, self._id, content))
return self._id
def pop(self) -> Task:
# мы извлекаем наименьший элемент
# в кортеже 3 элемента, сравнение идет слева направо
# сначала по приоритету с минусом (т.е. достаем наибольший приоритет)
# если приотритеты равны, то с наименьшим id (т.е. тот, что был добавлен раньше)
return heapq.heappop(self._queue)
def empty(self):
return not self._queue
flow = TaskFlow()
# добавим задачи в разнобой
flow.add_task(90, 'умывание')
flow.add_task(10, 'мыть тарелки')
flow.add_task(100, 'подъем')
# если приоритет одинаковый - сначала будет более раннее, затем позднее
flow.add_task(50, 'готовить завтрак')
flow.add_task(50, 'завтракать')
# пока есть задачи, будем доставать их и печатать
while not flow.empty():
print(flow.pop())
Последнее редактирование модератором: