Python - 如何打印包含类对象的列表内容?



我是Python的新手,在这里没有发现类似的问题。我的问题是,我如何在这里看到列表node_list的真实内容,而不是内存地址??(实际上包括节点1、节点2名称及其邻居(

class node:
def __init__(self, name):
self.name=name
self.neighbors={}
def update(self, name, weight):
if name in self.neighbors:
self.neighbors[name]=max(int(weight),int(self.neighbors[name]))
elif self.name==str(name):
print ("this is prohibited to add a key name as an existed name")
else:
self.neighbors[name] = str(weight)
node_list = []
node1 = node('1')
node_list.append(node1)
node1.update('2',10)
node1.update('4',20)
node1.update('5',20)
node2 = node('2')
node_list.append(node2)
node2.update('3',5)
node2.update('4',10)
print(node1.name)        #  That's OK - prints:  1
print(node1.neighbors)   #  That's OK - prints:  {'2': '10', '4': '20', '5': '20'}
print(node_list)         #  Not OK: prints:[<__main__.node object at 0x7f572f860860>, <__main__.node object at 0x7f572f860dd8>]  

我认为您必须为类定义中的节点创建一个__str__方法。否则,Python会自动打印内存地址。

这里有一个类似的问题。

如何使用print((打印类或类的对象?

最新更新