我是一名经验丰富的程序员,但对Python来说却是全新的。 我已经解决了大部分困难,但我无法让队列模块工作。 任何帮助感激不尽。 Python 3.2。
降低到基本最低值,问题在于:
>>>import queue
>>>q = queue.Queue
>>>q.qsize()
Traceback:
...
q.qsize()
...
TypeError: qsize() takes 1 argument exactly (0 given)
7.8.1。队列对象
队列对象(Queue,LifoQueue或PriorityQueue)提供下面描述的公共方法。
Queue.qsize()
好的 - 什么论点......?
答案 0 :(得分:5)
您没有初始化实例,只是将类名重新分配给q
。它所讨论的“论据”是self
,所有Python方法都需要的显式自引用。换句话说,它是说你试图调用没有实例的实例方法。
>>> q = queue.Queue()
>>> q.qsize()
如果您从未见过Python方法定义,它看起来像这样:
class Queue(object):
# Note the explicit 'self' argument
def qsize(self):
# ...
答案 1 :(得分:1)
您只是重命名queue.Queue
而不是实例化对象。
试试这个
q = queue.Queue()
print q.qsize()