Python 函数中对 ER 网络 G 传参的浅拷贝与深拷贝
可以使用浅拷贝或深拷贝的方式将 ER 网络 G 传递到函数中,以避免函数内部操作对原始网络 G 产生影响。
浅拷贝方式:
import copy
def function(G):
G_copy = copy.copy(G)
# 对 G_copy 进行操作
# ...
return
# 调用函数并传入 ER 网络 G
G = nx.erdos_renyi_graph(10, 0.5)
function(G)
深拷贝方式:
import copy
def function(G):
G_copy = copy.deepcopy(G)
# 对 G_copy 进行操作
# ...
return
# 调用函数并传入 ER 网络 G
G = nx.erdos_renyi_graph(10, 0.5)
function(G)
浅拷贝会创建一个新的对象,但其引用仍然指向原始对象的子对象。因此,如果原始对象的子对象发生更改,新对象也会受到影响。深拷贝会创建一个完全独立的对象,包括其子对象。这意味着原始对象和新对象之间没有任何联系,因此对新对象的更改不会影响原始对象。
原文地址: https://www.cveoy.top/t/topic/oo4z 著作权归作者所有。请勿转载和采集!