使用队列在 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() 就可以使它看起来像一个堆栈。