Python继承显示来自某些边缘的节点
我尝试构建这些类,需要显示边的每个节点。 (节点的状态仅为数字1或0(已访问/未访问)) 我必须构建一个图形(无向)并管理所有边(显示边、更改边的节点状态等) 问题出在方法getNode1()的类边缘Python继承显示来自某些边缘的节点,python,oop,Python,Oop,我尝试构建这些类,需要显示边的每个节点。 (节点的状态仅为数字1或0(已访问/未访问)) 我必须构建一个图形(无向)并管理所有边(显示边、更改边的节点状态等) 问题出在方法getNode1()的类边缘 我相信你不明白什么是继承 您的代码没有node1和node2实例变量。 这是主要问题。 如果下面的代码涵盖了您的需求,那么您不需要任何继承 class Node(object): def __init__(self, node, state): self.node = no
我相信你不明白什么是继承 您的代码没有node1和node2实例变量。 这是主要问题。 如果下面的代码涵盖了您的需求,那么您不需要任何继承
class Node(object):
def __init__(self, node, state):
self.node = node
self.state = state
def get_node(self):
return self.node
def get_state_node(self):
return self.state
class Edge(object):
def __init__(self, node1, node2):
self.nodes = []
self.nodes.append(node1)
self.nodes.append(node2)
def get_node(self, index):
return self.nodes[index].get_node()
def get_state_node(self, index):
return self.nodes[index].get_state_node()
def main():
graf = []
node1 = Node(2,0)
node2 = Node(1,0)
graf.append(Edge(node1,node2))
print(node1.get_node())
print(graf[0].get_node(0))
if __name__ == '__main__':
main()
如果您是用python编写代码,那么有一些约定,请参阅
“显示每个节点”是什么意思?是否要对象的字符串表示形式?为此,您可以实现
\uuu str\uu
函数。对不起,我错了,用print显示节点,比如print(graf[0].getNode1()),我无法理解您的意图。你需要更清楚地解释你的目标。在类中,像getNode1()这样的“Edge”方法不会从边缘给出node1。我不知道如何正确构建它(对不起,我的英语不好)。您的第二个类Edge
没有任何node1实例变量。在初始化中,您需要执行self.node1=Nodee.\uuu初始化(self,node1,0)并对node2重复。那么您将不会得到这个错误。但在这种情况下,你真的需要继承吗?
class Node(object):
def __init__(self, node, state):
self.node = node
self.state = state
def get_node(self):
return self.node
def get_state_node(self):
return self.state
class Edge(object):
def __init__(self, node1, node2):
self.nodes = []
self.nodes.append(node1)
self.nodes.append(node2)
def get_node(self, index):
return self.nodes[index].get_node()
def get_state_node(self, index):
return self.nodes[index].get_state_node()
def main():
graf = []
node1 = Node(2,0)
node2 = Node(1,0)
graf.append(Edge(node1,node2))
print(node1.get_node())
print(graf[0].get_node(0))
if __name__ == '__main__':
main()