希望快速回答!任何方向的帮助将不胜感激。我正在为我的期末考试做准备。
这就是我打电话给班级的方式:
>>> Q = priorityQueue()
>>> Q.insert("text",10)
>>> Q.insert("hello", 18)
>>> Q
text 10, hello 18
所以我有一个类:
class priorityQueue():
def __init__(self):
self.items = []
self.priorities = []
def insert(self, x, p):
self.items.append(x)
self.priorities.append(p)
#This is where I dont understand how to get it to return how it should.
def __repr__(self):
new = []
for x in range(len(self.items)):
new.append(str(self.items[x])+ " " +str(self.priorities[x]))
return [str(x) for x in new]
这会给我一个错误:
TypeError: __repr__ returned non-string (type list)
谢谢Stack!
答案 0 :(得分:0)
__repr__
函数必须返回string
,但您要返回list
。
您可能希望将return
行更改为return '\n'.join(new)
。
答案 1 :(得分:0)
尝试:
def __repr__(self):
new = []
for x in range(len(self.items)):
new.append(str(self.items[x])+ " " +str(self.priorities[x]))
return ','.join(new)
基本上你需要在所需的输出中返回输出,这是一个以逗号分隔的字符串。