Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何在PriorityQueue中设置_str____函数_Python_String_Function - Fatal编程技术网

Python:如何在PriorityQueue中设置_str____函数

Python:如何在PriorityQueue中设置_str____函数,python,string,function,Python,String,Function,我制作了一个优先级队列,其函数使用我的二进制堆函数。然而,在我的测试文件中,我试图打印出我的队列,使其看起来像这样 Your queue looks like this: 15 -> 45 -> 10 -> 100 但是,在类似的地方,它会不断打印出队列存储的位置,而不是队列中的项目,例如: <PriorityQueue.PriorityQueue object at 0x01E95530> 编辑:我尝试执行以下操作: def __str__(self):

我制作了一个优先级队列,其函数使用我的二进制堆函数。然而,在我的测试文件中,我试图打印出我的队列,使其看起来像这样

Your queue looks like this: 15 -> 45 -> 10 -> 100
但是,在类似的地方,它会不断打印出队列存储的位置,而不是队列中的项目,例如:

<PriorityQueue.PriorityQueue object at 0x01E95530>

编辑:我尝试执行以下操作:

 def __str__(self):
        return str(self.heap)
def __str__(self):
    return str(self.heap)
这仅打印出以下内容:

<MyHeap.Heap object at 0x01E255F0>

好的,
\uuu str\uuu
的思想是返回某种字符串,以人类可读的方式表示对象。您必须构造字符串,然后将打印您返回的任何内容,而不是

<PriorityQueue.PriorityQueue object at 0x01E95530>
请注意,我们使用的是
self.heap.heap
,而不是
self.heap
,因为在本例中
self
是一个
PriorityQueue
实例,PriorityQueue有一个.heap属性,其中包含一个
heap
。我们实际上想调用
.Heap
的就是这个
Heap
,它反过来给我们提供了我们想要的列表

编辑:我尝试执行以下操作:

 def __str__(self):
        return str(self.heap)
def __str__(self):
    return str(self.heap)
相反,请尝试以下方法:

def __str__(self):
    return self.heap.__str__()

有关使用哪一个的选择,请参阅。在这种情况下,您可能需要
\uuuuuuu str\uuuuuu
。@augurar我现在明白了为什么我要使用
\uuuuuuuuu str\uuuuuu
我将如何将其插入我的PQ类?我下面的答案提供了更直接的回答,尽管它不会提供花哨的
->
连接。为了记录在案,@rickcnagy的解决方案有一个错误。:-)行
3
不应该是
self.heap
(而不是
self.heap.heap
)。@lifebalance不,我相当确定它应该是
self.heap.heap
。这是因为在本例中,
self
是一个
PriorityQueue
实例,
PriorityQueue
有一个
.heap
属性,该属性包含一个
。我们实际上想调用
.Heap
的就是这个
Heap
,它反过来给我们提供了我们想要的列表。这有意义吗?
def __str__(self):
    return str(self.heap)
def __str__(self):
    return self.heap.__str__()