0
Relabel_node
機能のマッピングを使用して、スイッチクラスの環境変数(env)を渡すにはどうすればよいですか? 環境変数を渡す
H = nx.relabel_nodes(G, mapping=switch(env) ,copy=True
しかし、それは私にエラーを与えて、動作しませんでした。 シミュレーションのためにenv変数を渡すことは必須です。あなたのスイッチクラスコードを1として
**class switch(object):
def __init__(self, id):
self.id = id
self.env = env
self.store = simpy.Store(env)
self.rate = 100
self.out = None
self.packets_rec = 0
self.packets_drop = 0
self.qlimit = None
self.byte_size = 0 # Current size of the queue in bytes
self.debug = False
self.interfaces = []
self.numinterfaces = 16
self.busy = 0
for i in range(self.numinterfaces):
self.interfaces.append(SwitchPort(env, self.rate))
def __repr__(self):
return self.id
def edges_():
""" Return the lanl internet view graph from lanl.edges
"""
try:
fh = open('edges.list', 'r')
except IOError:
print("File not found")
raise
G = nx.Graph()
for line in fh.readlines():
(node1, node2) = line.split()
G.add_edge(str(node1), str(node2))
# get largest component and assign ping times to G0time dictionary
return G
if __name__ == '__main__':
import networkx as nx
env = simpy.Environment()
G = edges_()
H = nx.relabel_nodes(G, mapping=switch ,copy=True)
print("The graph has %d nodes with %d edges" \
% (nx.number_of_nodes(H), nx.number_of_edges(H)))**
[relabel_nodes' 'のドキュメント](https://networkx.github.io/documentation/development/reference/generatedを読みます/networkx.relabel.relabel_nodes.html)。あなたは 'switch'オブジェクトを渡しています(またはあなたの例の終わりでは、' switch'クラス自体)。しかし、あなたは 'dict'を渡す必要があります。 –