以下のように定義された Graph クラスと Vertex クラスがあるとします。
Graph.py
class Graph:
def __init__(self):
self.adjacencyList = {}
def __str__(self):
return str(self.adjacencyList)
def addVetex(self,key,value):
if Vertex(key,value) not in self.adjacencyList:
self.adjacencyList[Vertex(key,value)] = []
Vertex.py
class Vertex:
def __init__(self,key,value):
self.key = key
self.value = value
def __str__(self):
return "Key: ",str(self.key)," Value: ",str(self,value)
def __hash__(self):
return self.key
私がこれを行う場合:
G = Graph()
G.addVetex(1,None)
G.addVetex(2,None)
G.addVetex(1,3)
print G
印刷されますが{<Vertex.Vertex instance at 0x110295b90>: [], <Vertex.Vertex instance at 0x110295bd8>: []}
、次のようなものを期待しています{"Key:1 Value:None":[]...}
私の質問は、私が間違っていることは何ですか? 辞書が出力されたとき、なぜそのキー/値のstr関数を呼び出そうとしないのですか?
ありがとう。