首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python deepcopy没有深度复制用户类吗?

python deepcopy没有深度复制用户类吗?
EN

Stack Overflow用户
提问于 2018-08-09 06:06:24
回答 1查看 209关注 0票数 0

我将直接使用让我提出这样一个问题的示例:

代码语言:javascript
复制
Python 3.6.6 (default, Jul 19 2018, 14:25:17) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from copy import deepcopy

In [2]: class Container:
   ...:     def __init__(self, x):
   ...:         self.x = x
   ...:         

In [3]: anobj = Container("something")

In [4]: outobj = Container(anobj)

In [5]: copy = deepcopy(outobj)

In [6]: id(copy) == id(outobj)
Out[6]: False

In [7]: id(copy.x) == id(outobj.x)
Out[7]: False

In [8]: id(copy.x.x) == id(outobj.x.x)
Out[8]: True

根据deepcopy的文档,我期望最后一行的响应是False,也就是说deepcopy也会克隆字符串。

  1. 为什么不是这样?
  2. 如何获得所需的行为?我的原始代码具有不同级别的嵌套自定义类,这些类具有预定义类型的“最终”属性。

提前感谢

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51756310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档