类名的更改
要更改类名,而不破坏先前经过 pickle 的实例,请遵循以下步骤。首先,确保原来的类的定义没有被更改,以便在 unpickle 现有实例时可以找到它。不要更改原来的名称,而是在与原来类定义所在的同一个模块中,创建该类定义的一个副本,同时给它一个新的类名。然后使用实际的新类名来替代 NewClassName,将以下方法添加到原来类的定义中:
def __setstate__(self, state):
self.__dict__.update(state)
self.__class__ = NewClassName
页码:[1] [2] [3] [4] [5] [6] 第1页、共6页 |