Python Glossary English

все Python 3queueпонятие

queue.PriorityQueue

очереди

Потокобезопасная очередь с приоритетом: get() выдаёт наименьший элемент, обычно кортеж (приоритет, данные).

Синтаксис

q = queue.PriorityQueue(maxsize=0); q.put((priority, data))

Внутри — heapq, поэтому меньшее число означает более высокий приоритет. При равных приоритетах кортежи сравниваются по второму элементу, и если данные несравнимы (словари, свои объекты) — TypeError. Лечится счётчиком: (priority, count, data) или dataclass(order=True) с field(compare=False) у данных.

Примеры

import queue
q = queue.PriorityQueue()
q.put((2, 'low'))
q.put((1, 'high'))
print(q.get())  # → (1, 'high')
import queue
q = queue.PriorityQueue()
q.put((1, {'job': 'a'}))
try:
    q.put((1, {'job': 'b'}))
except TypeError as e:
    print(type(e).__name__)  # → TypeError

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности