我想比較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