gpt4 book ai didi

Python3 deepcopy 类实例不起作用

转载 作者:行者123 更新时间:2023-12-01 00:35:53 24 4
gpt4 key购买 nike

我从类 Stack 创建了 2 个类实例(stack0、stack1)类Stack中有一个类变量,它有另一个堆栈地址(引用),即stack0.other_stack是stack1,stack1.other_stack是stack0。但尽管我使用了 deepcopy 功能,但它并没有像我预期的那样工作。

我尝试创建一个类函数来深度复制 other_stack。

stack0 = Stack(stack_list, arr_size//2, 0)
stack1 = Stack(stack_list, arr_size//2, 1)
stack0.other_stack = deepcopy(stack1)
stack1.other_stack = deepcopy(stack0)
print(stack0.other_stack is stack1)
print(id(stack0.other_stack), id(stack1))

print(stack0.other_stack is stack1) 打印:False

print(id(stack0.other_stack), id(stack1)) 打印:4328836344 4328835224

我预计 stack0.other_stackstack1 完全相同,反之亦然。

最佳答案

is关键字检查两个值的标识是否相同,这是通过内存地址实现的。进行(深)复制将在新的内存地址中创建一个副本,这就是为什么 stack1 is deepcopy(stack1) 返回 False

关于Python3 deepcopy 类实例不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57766745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com