Enqueue 对象以结束 Queue 并使用 python 打印出其值

Enqueue object to end Queue and print out its value with python

我的项目中有一个队列 class,我似乎可以构建除打印方法之外的入队、出队方法。我的代码尝试将整数 1 插入队列并尝试打印出它的值

class Queue:
    def __init__(self):
        self.items=[]
    def isempty(self):
        return self.items==[]
    def enqueue(self,item):
        self.items.insert(0,item)
    def dequeue(self, item):
        self.items.pop()
    def print(self,item):
        print(self.items)
queue=Queue()
queue.enqueue(1)
##THIS LINE IS HAS A SYNTAX ERROR THAT print() is missing one positional argument 'self'
queue.print()

我做错了什么?

您在不带任何参数的情况下调用 print 方法。你想打印什么:整个队列还是它的头部?

我从 class Queue 中的 print 方法中删除了参数 item,它解决了问题。此外,python 有一个 queue 模块,它已经提供了这个 class 和其他一些模块,但我离题了。这是更新后的代码,不再导致错误。

class Queue:
    def __init__(self):
        self.items=[]
    def isempty(self):
        return self.items==[]
    def enqueue(self,item):
        self.items.insert(0,item)
    def dequeue(self, item):
        self.items.pop()
    def print(self):
        print(self.items)
queue=Queue()
queue.enqueue(1)
queue.print()

另一个想法是定义 dunder 方法而不是打印方法 __str__

class Queue:
    ...
    def __str__(self):
        return str(self.items)