python程序问题

请教下,下面的程序41行返回缺少参数是怎么回事?
queue.put( i )
TypeError: put() missing 1 required positional argument: 'item'

import threading
import queue
import time

queue = queue.Queue

class Producer( threading.Thread ):
def __init__( self ):
threading.Thread.__init__( self )
self.queue = queue

def run( self ):
for i in range( 100 ):
while True:
if queue.qsize() > 10:
pass
else:
queue.put( i )
print( "put {0}".format( i ) )

time.sleep( 1 )

class Customer( threading.Thread ):
def __init__( self ):
threading.Thread.__init__( self )
self.queue = queue

def run( self ):
for i in range( 10 ):
while True:
for i in range( 50 ):
if queue.qsize() < 5:
pass
else:
queue.get()
print( "get {0}".format( i ) )
time.sleep( 1 )

if __name__ == '__main__':
for i in range( 5 ):
queue.put( i )

for i in range( 2 ):
Producer( queue ).start()

for i in range( 5 ):
Customer( queue ).start()

queue.join()

很明显的参数类型错误啊,put只能take一个Queue instance,你给了个int当然要报错。改为__init__(self,queue):self.queue=queue。

Python是一种面向对象、直译式计算机程序设计语言,由荷兰人Guido van Rossum发明于1989年,1991年发行第一个公开发行版。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL协议。语法简洁清晰,特色之一是强制用空白符作为语句缩进。名字来源于一个喜剧,最初设计Python这种语言的人并没有想到Python会在工业和科研上获得如此广泛的使用。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答