Что это за структура и как ее использовать?

#python

#python

Вопрос:

Я пытаюсь разобраться в некотором коде Python и я нашел это:

 nodesList.append(
    Node.Node(
       NodeInfo.NodeInfo(
          nodeID,
          nodeStructure["text"].encode('utf8'),
          nodeStructure["type"],
          None,
          schemeValue,
          schemeIDValue
       ), adjEdges
    )
)
  

Я не могу сказать, список это или массив .. или что!

Дело в том, что я не знаю, как получить доступ к вспомогательным разделам .

Например, я смог получить доступ к NodeInfo с помощью (currentNode.nodeInfo).text , но currentNode.ajdEdges это не работает :/

РЕДАКТИРОВАТЬ 2: Кажется, я был совершенно не готов задать этот вопрос x (Но спасибо всем, кто помогает, потому что я ничего не добивался, и теперь я вижу свет в конце туннеля ^^;

Node.py

 class Node:

    def __init__(self, nodeInfo, edges):
        self.nodeInfo= nodeInfo
        self.edges= edges

    def __str__(self):
        outputString= "Show Node:"   'n'   "--- NodeInfo:"   'n'   str(self.nodeInfo)   'n'   "--- Edges"   'n'

        for e in self.edges:
            outputString= outputString   str(e)   'n'

        return outputString   'n'
  

Edge.py

 class Edge:

    def __init__(self, edgeInfo, destinationNodeId):
        self.edgeInfo= edgeInfo
        self.destinationNodeId= destinationNodeId

    def getEdgeInfo(self):
        return self.edgeInfo

    def getDestinationNodeId(self):
        return self.destinationNodeId

    def __str__(self):
        return "Edge:"   'n'   "--- EdgeInfo n"   str(self.edgeInfo)   'n'   "--- DestinationNodeId"   'n'   "   "   str(self.destinationNodeId)   'n'
  

Вы знаете, что происходит?

Комментарии:

1. У вас есть доступ к классу Node? Это из какого-то модуля? Если да, то что это такое?

2. Мы также не знаем, как получить к ней доступ, потому что вы не показали код для классов Node или NodeInfo. Что узел __init__ делает с этим параметром? Как только вы это узнаете, вы будете знать, как получить к ней доступ. (Но обратите внимание, что adjEdges передается в Node, а не NodeInfo.)

3. И на что Node похоже? Потому что adjEdges используется в качестве второго аргумента в Node создании экземпляра. В комментариях запрашивался Node класс, но теперь вы дали определения двух других классов.

4. Вы добавили EdgeInfo и NodeInfo , но Node это тот, с adjEdges которым нам нужно ознакомиться

5. Используйте currentNode.edges . Вы можете сами убедиться в этом непосредственно в коде для Node .

Ответ №1:

Вы можете получить доступ к значению, adjEdges переданному Node с currentNode.edges помощью.