两个queue.Queue
实例是否相同或相同?
我有一些代码,其中创建Queue
实例,附加到list
,然后删除。
l = []
def example():
q = Queue()
l.append(q)
thingy = q.get() # wait on background worker thread to put something in queue
# ... do something with thingy ...
l.remove(q)
对于(我认为不相关)上下文,更广泛的程序中的其他线程将把自己的队列放入列表中,并且还有一个后台工作线程将把对象放入它在列表中找到的队列中。
据我所知,list.remove()
首先检查身份,然后检查是否相等。因此,我想知道两个Queue
实例是否会被评估为相同或相同。
如果他们的一个==
方法评估为__eq__
,则两个对象相等(True
)。
两个对象是相同的(is
),如果它们实际上是相同内存地址的同一对象。
如果一个类(或其父类)没有实现__eq__
方法,那么相等比较将回归到身份比较。
The Queue
class does not implement __eq__
所以两个Queue对象只有在它们实际上是相同的时才会相等。
这可以通过Queue() == Queue()
是False
的事实来证明。