我有以下两个课程:
class foo:
def __init__(self):
self.val = 10
class foo2:
def __init__(self):
self.val = 1000
当我将类foo的一个实例复制到一个变量中,然后更改类foo的一个值时,变量就改变了。这是因为foo是一种引用类型,foo中的每一个更改都会更改其实例
f = foo()
b = f
print(b.val)
f.val = 20
print(b.val)
>> 10
>> 20
但是如果我将classfoo2复制到classfoo中,变量b不会变为1000。对此有什么解释
f = foo2()
print(f.val)
print(b.val)
>> 1000
>> 20
是这样的:
您尚未创建
f
对象的副本,而是创建了对同一f
对象的两个不同引用。对其中一个的更改将同时更改这两个对象,因为它们是相同的对象相关问题 更多 >
编程相关推荐