在我的代码中,我尝试使用copy.deepcopy
. 问题是在某些情况下它会出现以下错误:
TypeError: 'object.__new__(NotImplementedType) is not safe, use NotImplementedType.__new__()'
经过大量挖掘,我发现我能够使用以下代码重现错误:
import copy
copy.deepcopy(__builtins__)
问题似乎是在某些时候它试图复制NotImplementedType
内置。问题是它为什么要这样做?我在课堂上没有被覆盖__deepcopy__
,也不是一直发生。有没有人有任何提示来追踪制作这种类型的副本的请求来自哪里?
我已经在copy
模块本身中放置了一些调试代码,以确保这是正在发生的事情,但是问题发生的地方在递归堆栈中很远,很难理解我所看到的。