Python继承显示来自某些edg的节点

2024-10-04 11:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试构建这些类,需要显示边的每个节点。 (节点的状态只是数字1或0(已访问/未访问))。你知道吗

我必须建立一个图形(无向)和管理所有的边缘(显示边缘,改变一个边缘节点的状态等)

问题出在方法getNode1()的类Edge中

class Nodee:

   def __init__(self, node, state):
      self.node = node
      self.state = state

   def getNode(self):
         return self.node

   def getStateNode(self):
         return self.state


class Edge(Nodee):

      def __init__(self, node1, node2):
         Nodee.__init__(self,node1,0)
         Nodee.__init__(self,node2,0)

      def getNode1(self):
         return self.node1.getNode()

      def getStateNode1(self):
         return self.node1.getStateNode()

      def getNode2(self):
         return self.node2.getNode()

      def getStateNode2(self):
         return self.node2.getStateNode()

def main():

      graf = []
      node1  = Nodee(2,0)
      node2  = Nodee(1,0)

      graf.append(Edge(node1,node2))
      print(str(node1.getNode()))
      print(str(graf[0].getNode1()))

Tags: selfnodereturn节点initdef边缘state
1条回答
网友
1楼 · 发布于 2024-10-04 11:28:37

我相信你不明白什么是继承。你知道吗

您的代码没有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()

If you are writing code in python, then there are some conventions, please look at PEP8.

相关问题 更多 >