【发布时间】:2020-12-13 11:41:48
【问题描述】:
我在实现类 ArrayQ 中的函数时遇到了困难。任务是创建一个类并在其中包含三个方法,入队、出队和 isEmpty。在“self.array.append(self.array)”中,我不确定它是否应该是数组、self.array、self 或括号中的其他内容。下面的 basictest() 函数用于控制我们的类是否正常工作,但目前还没有。
from array import array
class ArrayQ:
def __init__(self,array):
self.array = array
def enqueue(self):
self.array.append(self.array)
def dequeue(self):
self.array.pop(0)
def isEmpty(self):
if not self.array:
print("queue is empty")
#print(ArrayQ)
lista = []
def basictest():
q = ArrayQ(lista)
q.enqueue(1)
q.enqueue(2)
x = q.dequeue()
y = q.dequeue()
if (x == 1 and y == 2):
print("test OK")
else:
print("FAILED expexted x=1 and y=2 but got x =", x, " y =", y)
basictest()
我收到以下错误消息:
Traceback (most recent call last):
File "d1.py", line 31, in <module>
basictest()
File "d1.py", line 22, in basictest
q.enqueue(1)
TypeError: enqueue() takes 1 positional
argument but 2 were given
那么任何人都可以指导我如何解决这个问题,以便我可以使这段代码正常工作吗?在这段代码中可能出现的几个错误中,为什么我不能使用“q.enqueue(1)”来使用类中编写的函数或方法来更改我的列表?
【问题讨论】:
-
第一个问题是代码没有正确缩进。
-
请阅读本教程系列以了解类的概念。链接:youtube.com/watch?v=ZDa-Z5JzLYM
-
@mkrieger1,它的意图是正确的,这是我的第一个 stackoverflow 问题,所以我显然没有正确粘贴代码,但它在我的程序中是准确的。
-
@TanishqVyas,谢谢!我听说过 Corey Schafer 的教程。我一定会看的!
标签: python function class methods