使用队列在 canvas 中添加形状
using queue to add a shape in canvas
我对如何在 canvas 中使用队列添加形状感到困惑。我正在尝试添加一个三角形。这是我得到的代码。我收到一个错误 >>> AttributeError: 'Queue' object has no attribute '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()
对于模块 queue 我没有看到函数 enqueue()。
虽然有 queue.Queue.put()
。
更新
有没有可能,python 正在使用 "wrong" Queue
,意思是来自模块队列内部的那个?
更新
也许可以先将 class "Queue" 重命名为不同的名称,例如 "Queue1"。
或者只使用模块中的 queue.Queue
。
更新
如果要使用堆栈,只需使用 list
功能,不需要 class 堆栈:
stack = list()
stack.append('item1')
stack.append('item2')
stack.append('item3')
print stack.pop()
>>> 'item3'
只需使用 .pop()
就可以使它看起来像一个堆栈。
我对如何在 canvas 中使用队列添加形状感到困惑。我正在尝试添加一个三角形。这是我得到的代码。我收到一个错误 >>> AttributeError: 'Queue' object has no attribute '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()
对于模块 queue 我没有看到函数 enqueue()。
虽然有 queue.Queue.put()
。
更新
有没有可能,python 正在使用 "wrong" Queue
,意思是来自模块队列内部的那个?
更新
也许可以先将 class "Queue" 重命名为不同的名称,例如 "Queue1"。
或者只使用模块中的 queue.Queue
。
更新
如果要使用堆栈,只需使用 list
功能,不需要 class 堆栈:
stack = list()
stack.append('item1')
stack.append('item2')
stack.append('item3')
print stack.pop()
>>> 'item3'
只需使用 .pop()
就可以使它看起来像一个堆栈。