我想将multiprocessing.Queue子类化,以实现抓取队列块的进程.唯一的问题是,我得到一个奇怪的TypeError?
#!/usr/bin/env python
#whaaaaa!?
from multiprocessing import Queue
class BufferQueue(Queue):
'''A thread/process safe queue for append/popleft operations with the import
buffer.'''
def __init__(self,**kwargs):
super(BufferQueue,self).__init__(**kwargs)
def consume(self,lim):
'''Consume up to but no more than lim elements and return them in a new
list,cleaning up the buffer.
@params
lim -- the maximum (limit) to consume from the list. If less items
exist in the list then that's fine too.
'''
lim = len(queue) if len(queue) < lim else lim
return [self.popleft() for i in range(lim)]
测试这个(我将其拆分,以便我不会拉其他任何东西)
| => ./tests/wtf_queue.py
Traceback (most recent call last):
File "./tests/wtf_queue.py",line 10,in
class BufferQueue(Queue):
TypeError: method expected 2 arguments,got 3
编辑/更新: