我想比较networkx.Graph
对象n
在函数调用d(n)
(带有副作用)之前的状态与之后的状态。如何复制但不是深度复制网络图?
有可变的对象节点属性,如n.node[0]['attribute']
,我想比较。
显然,
before = n
d()
after = n
assert id(before.node[0]['attribute']) == id(after.node[0]['attribute'])
成功平凡,因为
before == after
,但如果我设置before=n.copy()
,深拷贝制成,因此id(before.node[0]['attribute']) != id(after.node[0]['attribute'])
。如何在不复制所有节点属性对象的情况下获取Graph对象的副本?
[Networkx copy clarification]的可能副本(http://stackoverflow.com/questions/29854387/networkx-copy-clarification) – Anaphory