fast_deepcopy
(函数来自 pyomo.common.autoslots)
- pyomo.common.autoslots.fast_deepcopy(obj, memo)[source]
copy.deepcopy() 的更快实现
Python 的默认深拷贝实现有几个特性比它们需要的要慢。这是一个深拷贝的实现,提供了特殊处理来规避一些深拷贝()中最慢的部分。
注意
此实现不会在深拷贝操作结束之前积极保持复制状态的活动。特别是,
dict、list和tuple的处理程序不会将它们的源对象注册到备忘录中。这是可以接受的,因为 fast_deepcopy() 只在确保源对象将持续存在的情况下被调用:AutoSlots.__deepcopy_state__()明确保留了源状态Component.__deepcopy_field__()仅由AutoSlots.__deepcopy_state__()调用 -IndexedComponent._create_objects_for_deepcopy()正在 从源_data字典中深度复制原始键(这不是一个临时对象,将会持续存在)
如果其他消费者希望使用此功能(例如,在他们实现
__deepcopy__时),他们必须记住他们有责任确保任何临时源obj持续存在。