【发布时间】:2020-10-21 05:10:52
【问题描述】:
我正在使用 deepcopy 对 Python 类进行深层复制,并更改复制对象的类变量。由于某种原因,被复制的原始类的类变量也被更改了。这是为什么呢?
当我使用'type' syntax 创建一个类时,这似乎没有发生。
import copy
class Test:
a = 0
print(Test.a) # 0
b = copy.deepcopy(Test)
b.a = 1
print(Test.a) # 1 - why?
c = type('Test2', (Test,), {'a': 2})
print(Test.a) # still 1
【问题讨论】: