我遇到了这个fifo-queue程序的问题,我已经解决了大部分代码,看起来像这样:
class fifoQueue:
__L = []
def __init__(self):
self.__L = []
def __len__(self):
return len(self.__L)
def empty(self):
if len(q) == 0:
return True
else:
return False
def enqueue(self, e):
self.__L.insert(0, e)
return self.__L
def dequeue(self):
if self.empty():
self.__L = [e]
else:
return self.__L.pop()
def __str__(self):
return "'" + str(self.__L) + "'"
我遇到的问题是__ str __(自我)功能,我想要它做的是将我的列表自我.__ L与"'"如果我调用print(str(q)),但如果我只调用print(q),我希望它返回列表。现在我得到了print(q)和print(str(q))的相同输出。
(print(str(q)) returns '[31.0]'
print(q) returns '[31.0]'
虽然我希望它返回
str(q) returns '[31.0]' or print(str(q)) returns '[31.0]'
print(q) returns [31.0]
我来自数学背景,这是我学习的第一批语言之一,所以如果这是非常基础,我会道歉。 这是一个赋值,我必须只使用__ str __来完成此任务,不能创建其他函数。 任何指示都非常感谢。
答案 0 :(得分:1)
__str__方法应如下:
def __str__(self):
return str(self.__L) # delegate to built-in function (no concatenation with quote)
或者:
def __str__(self):
return '{self.__L !s}'.format(self.__L) # string formatting