Я хочу сравнить состояние объекта networkx.Graph
n
перед вызовом функции d(n)
(с побочными эффектами) с состоянием после этого.Как скопировать, но не deepcopy, диаграмму networkx?
Есть атрибуты изменяемого объекта, такие как 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] (http://stackoverflow.com/questions/29854387/networkx-copy-clarification) – Anaphory