from queue import PriorityQueue
class NewQueue(PriorityQueue):
def __init__(self, maxsize=None):
PriorityQueue.__init__(self, maxsize)
def put(self, item, block=True, timeout=None):
PriorityQueue.put(self, item)
queue = NewQueue()
queue.put('abc')
我试图创建一个自定义类的PriorityQueue,但我得到了 以下错误:
PriorityQueue.put(self, item)
TypeError: unorderable types: NoneType() > int()
为什么会发生这种情况,我怎样才能使这个自定义类工作?
答案 0 :(得分:2)
问题不在于对queue.put
的调用,而在于您将None
作为maxsize
传递。如果您想拥有无限制的队列,请使用0
作为maxsize
。
错误发生在put
,因为它检查maxsize
是否大于0
None
将会失败。
所以只需更改__init__
class NewQueue(PriorityQueue):
def __init__(self, maxsize=0):
...
答案 1 :(得分:1)
您正在尝试使用maxsize=None
创建一个队列。尝试使用
queue = NewQueue(0)
或更改您的__init__
签名:
def __init__(self, maxsize=0):