我正在尝试编写我的第一个Queue类。到目前为止,我有这个代码可以工作:
class Queue(list):
def __init__(self):
self = []
def insert(self, x):
self.append(x)
return self
def delete(self):
if len(self) == 0:
print "The queue is empty"
else:
self.remove(self[0])
return self
然而,我被推荐重写它,当我尝试这样的事情时,我得到了错误的结果:
class Queue:
def __init__(self):
self.items = []
def insert(self, x):
self.items.append(x)
测试:
queue = Queue()
print queue
queue.insert(5)
print queue
GOT:
<__main__.Queue instance at 0x0000000002A2F148>
<__main__.Queue instance at 0x0000000002A2F148>
请您解释一下两种方法之间的区别以及为什么第二种方法不起作用(虽然我在许多网站上看到过)?
答案 0 :(得分:1)
您需要在打印之前为repr
实施class Queue
或#floatingCirclesG{
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin:auto;
height:/* put your height */;
width:/* put your width */; }
答案 1 :(得分:0)
在重写中,您可能希望返回insert的值,并在调用中将其分配给变量:
queue = Queue()
print queue #should show something like <__main__.Queue instance at 0x(some numbers here)>
newQueue = queue.insert(5)
print newQueue
并在函数内部,将其更改为:
def insert(self, x):
self.items.append(x)
return self.items