内置函数
为什么不使用通用的
len()
(https://docs.python.org/3/library/functions.html#len) 返回“对象的长度(即项目数)”,但是对于queue.Queue
(https://docs.python.org/3/library/queue.html),该函数未实现。
相反,queue.Queue
具有qsize()
方法,返回队列的近似大小,但其实它确实有长度;可以在构造函数中指定Queue
的最大长度。类似的collections.deque
使用len
函数工作正常。为什么不使用通用的
len()
来处理queue.Queue
?或者说,如果将qsize
命名为__len__
以启用len()
函数会出现什么问题?
len
返回一个准确的值,而不是一个近似值。并且这个操作应该快速完成。为了实现一个准确的__len__
,队列需要被暂时锁住以防止添加和删除操作,这将影响性能。 - PM 2Ring