我从一个类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)
我希望False
与print(id(stack0.other_stack), id(stack1))
完全相同,反之亦然。
答案 0 :(得分:2)
is
关键字检查两个值的标识是否相同(通过内存地址实现)。进行(深层)复制将在新的内存地址中创建一个副本,这就是stack1 is deepcopy(stack1)
返回False
的原因。