Python3 Deepcopy类实例不起作用

时间:2019-09-03 07:17:32

标签: python deep-copy

我从一个类Stack创建了2个类实例(stack0,stack1) 在类Stack中有一个名为class的类变量,它具有另一个堆栈地址(引用),即stack0.other_stack是stack1,stack1.other_stack是stack0。 但是,尽管我使用了Deepcopy函数,但它没有按我预期的那样工作。

我尝试制作一个可以深度复制other_stack的类函数。

<link runat="server" href="~/assets/plugins/timepicker/bootstrap-timepicker.min.css" rel="stylesheet" />
<link runat="server" href="~/assets/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css" rel="stylesheet" />
<link runat="server" href="~/assets/plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css" rel="stylesheet" />

javax.xml.soap.Text打印:org.apache.hadoop.io.Text

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)

我希望Falseprint(id(stack0.other_stack), id(stack1))完全相同,反之亦然。

1 个答案:

答案 0 :(得分:2)

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