如何在 python 中复制 class 对象

How to copy a class object in python

这是一个非常简单的问题,但我似乎不知道该怎么做。我只需要制作一个 class 对象的副本,例如:

class Foo():
     def __init__(self, nums):
          self.nums = nums

A = Foo(5)

我尝试同时执行 A.copy() 和 A.deepcopy(),但我得到“'Foo' 对象没有属性 'copy'” 这可能是一个超级简单的修复,但我以前从未使用过复制模块,也不知道为什么这可能是个问题。 作为参考,我需要复制的对象是可变的(不影响原始对象)所以我认为最好的方法是使用 .deepcopy()。

你说得对,使用 built-in copy module 中的深度复制是正确的方法,因为你想要对象 Foo 的精确副本。

from copy import deepcopy

class Foo:
    ...

Foo_copy = deepcopy(Foo)
# Foo_copy(5) will work exactly the same way Foo(5) would work without affecting it.
# Foo_copy = deepcopy(Foo(5)) works the same way as well, but here, Foo_copy.nums will be 5.

在这里,传递对象 Foo(5) 将 return 一个 Foo object,不带任何参数传递它将 return __name__.Foo