我对如何在画布中使用队列添加形状感到困惑。我正在尝试添加一个三角形。这是我得到的代码。我收到错误>>> AttributeError:'Queue'对象没有属性'enqueue'
我已经尝试了一段时间了,我认为我有正确的想法,我只需要一些指导谢谢!
from tkinter import *
import random
root = Tk()
from queue import *
class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def size(self):
return len(self.items)
def enqueue(self, item):
self.items.insert(0, item)
def dequeue(self):
return self.items.pop(0)
def peek(self):
return self.items[0]
class Recta():
def __init__(self, height=60, width=80):
self.queue = Queue()
def create_buttons(self):
self.button5 = Button(self.frame, text = "Add Arc", command = self.random_arc)
self.button5.pack(side = 'left')
def random_arc(self):
w = random.randrange(45)
h = random.randrange(90)
self.queue.enqueue(self.canvas.create_arc(0,w,h,fill= "green"))
tes = Recta()
tes = Queue()
root.mainloop()
答案 0 :(得分:0)
对于模块queue,我没有看到函数enqueue()。
虽然有queue.Queue.put()
。
<强>更新强>
是否有可能,python正在采用“错误的”Queue
,意味着模块队列中的那个?
<强>更新强>
也许首先将您的班级“队列”重命名为“Queue1”之类的其他内容。
或者只使用模块中的 queue.Queue
。
<强>更新强>
如果你想使用堆栈,只需使用list
功能,不需要类Stack:
stack = list()
stack.append('item1')
stack.append('item2')
stack.append('item3')
print stack.pop()
>>> 'item3'
只需使用.pop()
即可使其显示为堆栈。