将引用类型复制到另一个引用类型对

2024-10-01 19:15:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下两个课程:

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

Tags: 实例self类型fooinitdefvalclass
1条回答
网友
1楼 · 发布于 2024-10-01 19:15:10

是这样的:

b = f

您尚未创建f对象的副本,而是创建了对同一f对象的两个不同引用。对其中一个的更改将同时更改这两个对象,因为它们是相同的对象

相关问题 更多 >

    热门问题