2016-11-08 68 views
0

我有一個類定義如下:的Python:複製類對象到另一個類

class Table: 
    order = {} 
    id = None 
    state = None 

我有包含具有鍵索引和值表的對象的關鍵值對的字典。

dict{1: table_object} 

現在我想要得到的表對象和詳細信息複製到另一個對象,這樣的:

new_object = dict[1] 

如何更改類或將詳細信息複製到另一個對象?

+0

所以,你在實例級別更改類屬性,並且要確保它被應用到其他所有實例? – idjaw

+0

我只是想要在我創建的新對象中出現相同的值 –

+1

儘管Andrew的答案是正確的,但您幾乎不必使用Python複製對象。初學者大多數時候認爲他們需要一份副本,但他們並不瞭解數據模型。嘗試向你的鼠標解釋爲什麼你需要*,你可能會發現你沒有。 – msw

回答

1

如果你想創建一個類的副本,並將其賦值給一個新的對象,你可以使用複製:

from copy import copy 

new_object = copy(dict[1]) 

根據您的類的結構,你可能想要做一個deepcopy的,而不是。淺拷貝將只複製引用到在您的初始類中找到的對象。 A deepcopy將嘗試遞歸複製原始類中的所有對象。如果在類中有一些遞歸結構,可能會有問題,但大多數情況下這不會成爲問題。

from copy import deepcopy 

new_object = deepcopy(dict[1]) 

更多信息請參閱本 - https://docs.python.org/2/library/copy.html

相關問題