这些是我的Graph
和Node
类:
import random
class Graph:
def __init__(self):
self.node_list = {}
self.number = 0
def node(self, node_name):
if node_name in self.node_list: #returns list of keys
return self.node_list[node_name]
else:
self.node_list[node_name] = Node()
def name_node(self):
if names == False:
names == []
if len(names) < 2:
for count in range(2 - len(names)):
names.append('node_' + str(number))
number += 1
if names[0] in node_list:
del names[0]
return name_node()
return names.pop(0)
...
class Node:
def __init__(self):
daughters = []
...
def PrefixTrieConstruction(patterns):
trie = Graph()
trie.node('root')
for pattern in patterns:
currentNode = trie.node('root')
for symbol in pattern:
for daughter in currentNode.daughters:
if daughter.label == symbol:
currentNode = daughter
break
else:
node_name = Trie.name_node()
Trie.node(node_name)
Trie.edge(currentNode, node_name, symbol)
currentNode = node_name
return Trie
当我运行这个命令时,它返回一个引用行的错误
for daughter in currentNode.daughters:
那个
Node object has no attribute 'daughters'
我把它放在init
,所以每个节点都必须有daughters = []
,我相信。
我还尝试在Graph.node
method else子句下面添加一行,明确表示要返回新创建的节点
为什么这个属性不存在
在
Node.__init__
中,设置局部变量daughters
,而不是属性self.daughters
相关问题 更多 >
编程相关推荐