【问题标题】:Python: Copy class object to another class [duplicate]Python:将类对象复制到另一个类[重复]
【发布时间】:2017-03-21 13:38:18
【问题描述】:

我有一个类定义如下:

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

我有一个包含键值对的字典,其中键索引和值是表对象。

dict{1: table_object}

现在我想获取表格对象并将详细信息复制到另一个对象,例如:

new_object = dict[1]

如何更改类或将详细信息复制到另一个对象?

【问题讨论】:

  • 那么,您是在实例级别更改类属性,并希望确保它应用于所有其他实例?
  • 我只想在我创建的新对象中出现相同的值
  • 虽然 Andrew 在下面的回答是正确的,但您几乎不必在 Python 中复制对象。大多数时候,初学者认为他们需要一个副本,但他们并不了解数据模型。试着向你的鼠标解释为什么你需要,你可能会发现你不需要。

标签: python oop


【解决方案1】:

如果要创建类的副本并将其分配给新对象,可以使用 copy:

from copy import copy

new_object = copy(dict[1])

根据你的类的结构,你可能想要做一个深拷贝。浅拷贝只会将 references 复制到在您的初始类中找到的对象。 deepcopy 将尝试递归复制原始类中的所有对象。如果您的类中有一些递归结构,这可能会出现问题,但在大多数情况下,这不会成为问题。

from copy import deepcopy

new_object = deepcopy(dict[1])

更多信息请参见 - https://docs.python.org/2/library/copy.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 2010-11-15
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多