请教下,下面的程序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()
python:TypeError: put() missing 1 required positional argument: 'item'
答案:5 悬赏:40
解决时间 2021-03-09 12:40
- 提问者网友:孤笛钟情你
- 2021-03-08 14:21
最佳答案
- 二级知识专家网友:糜废丧逼
- 2021-03-08 14:59
queue = queue.Queue 少个()
应该是queue = queue.Queue()
应该是queue = queue.Queue()
全部回答
- 1楼网友:瘾与深巷
- 2021-03-08 19:59
error msg不是说的很清楚了么。put只能take一个Queue instance,你给了个int当然要报错。
- 2楼网友:随心随缘不随便
- 2021-03-08 19:08
你定义的函数,有两个必选参数x和y,一个可选参数other。
但是你调用函数是只给了一个2.3,所以会报错提示缺钱赋值给参数'y'的值
你照着书本抄,估计是把逗号抄成点号了,所以【2,3】成了【2.3】
所以要给两个参数就行。
比如:power(2,3)
- 3楼网友:转身→时光静好
- 2021-03-08 18:04
很明显的参数类型错误啊!!!put只接收queue ,你给的是int型
- 4楼网友:有钳、任性
- 2021-03-08 16:33
很明显的参数类型错误啊,put只能take一个Queue instance,你给了个int当然要报错。改为__init__(self,queue):self.queue=queue。
Python是一种面向对象、直译式计算机程序设计语言,由荷兰人Guido van Rossum发明于1989年,1991年发行第一个公开发行版。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL协议。语法简洁清晰,特色之一是强制用空白符作为语句缩进。名字来源于一个喜剧,最初设计Python这种语言的人并没有想到Python会在工业和科研上获得如此广泛的使用。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯