色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 類的深拷貝

劉柏宏2年前10瀏覽0評論

Python中的深拷貝被廣泛應用于類的對象中。深拷貝的概念是在拷貝對象時,對于拷貝對象中非基本類型的屬性,會生成新的對象,而不是簡單地拷貝引用。下面我們看看在Python中如何使用深拷貝。

import copy
class Myclass:
def __init__(self):
self.list = [1,2,3]
self.dict = {'a':1,'b':2,'c':3}
obj1 = Myclass()
print("原始對象: ", obj1.__dict__)
#進行深拷貝
obj2 = copy.deepcopy(obj1)
#修改原始對象中的屬性
obj1.list[1] = 4
obj1.dict['b'] = 5
print("拷貝對象: ", obj2.__dict__)

代碼功能:首先定義了一個Myclass類,在該類中定義了一個list屬性和一個dict屬性。接著我們創建了一個Myclass對象obj1,并輸出其__dict__屬性。接著,我們對obj1進行了深拷貝,得到了obj2。然后修改了obj1的list和dict屬性,最后輸出obj2的__dict__屬性。運行結果如下:

原始對象:  {'list': [1, 2, 3], 'dict': {'a': 1, 'b': 2, 'c': 3}}
拷貝對象:  {'list': [1, 2, 3], 'dict': {'a': 1, 'b': 2, 'c': 3}}

可以看到,使用深拷貝得到的拷貝對象是一份和原始對象互不干擾的對象。這是由于深拷貝生成了新的對象。另外,需要注意的是,深拷貝有可能會導致遞歸循環,將會導致程序無法結束。此時,需要手動將循環終止。