没有Python的方法可以做到这一点。
Python提供很少的设施来 强制执行
诸如私有或只读数据之类的事情。python的哲学是“我们都是成年人”:在这种情况下,这意味着“该功能不应更改数据”是规范的一部分,但未在代码中强制执行。
如果要复制数据,则可以找到最接近的解决方案。但是
copy.deepcopy,除了是低效的,也有注意事项,例如:
因为深层副本会复制所有内容,所以它可能会复制过多,例如,即使在副本之间也应共享的管理数据结构。
[…]
该模块不复制诸如模块,方法,堆栈跟踪,堆栈框架,文件,套接字,窗口,数组或任何类似类型的类型。
因此,仅当您知道您正在处理内置的Python类型或您自己的对象时(如果您可以通过定义
__copy__/
__deepcopy__特殊方法自定义复制行为,而无需定义自己的
clone()方法),我才建议这样做。



