ネットワーク パスの sqlite db からデータを取得する python スクリプトを作成しています。ノード、リンクの 2 つのクラスがあります。
class node:
nodeName = str()
nodeType = str()
node1 = str()
node2 = str()
active = 0
def __init__(self, nodeID):
self.nodeID = nodeID
cursor = network.execute("SELECT linkID FROM link WHERE nodeA = ? OR nodeB = ?", (nodeID, nodeID,))
row1 = cursor.fetchone()
row2 = cursor.fetchone()
if row1:
self.link1 = link(row1[0])
if row2:
self.link2 = link(row2[0])
self.nodeName, selfsnodeType, self.active = network.execute("SELECT nodeName, nodeType, active FROM node WHERE nodeID = ?", (nodeID,)).fetchall()[0]
Link はまったく同じですが、2 つのノードの子を取得しようとします。ご覧のとおり、これにより循環参照が作成されますが、3 レベルの深さがあり、リンクの子はそれ自体のノードの子を取得せず、ノードの子はリンクの子を取得しません。値を読み取ろうとすると、None タイプが返されます。
NODE object 67 getting link children:
(19,)
(48,)
link object 19 getting node childs:
(67,)
(112,)
NODE object 67 getting link children:
None
None
- この動作は設計によるものですか?
- これは悪い考えですか?
- 子供たちを反復することは可能ですか?