2016-11-08 56 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

相关问题