有一个基于RenPy的游戏,它对一些游戏对象使用自定义Python类。最近,作为重构的一部分,我们重命名了一些模块和类。这破坏了旧游戏的加载,因为Pickle找不到类。
Pickle本身支持一种通过类重命名正确处理情况的机制:https://wiki.python.org/moin/UsingPickle/RenamingModules
但是,我不能将此代码应用到RenPy游戏中,因为保存/加载过程是由RenPy在它的loadsave.py模块中控制的。是否有一种无需修补RenPy代码来修复加载的方法?有猴子的想法吗?
发布于 2016-09-03 05:21:17
当我在任‘Py中移动内容时,我通常所做的就是创建一个别名,从类的旧名称到新名称。这就足够泡菜了-它查找旧的名称,并创建一个具有新名称的类。
例如,如果我有
class OldClass(object):
pass如果想将其重命名为NewClass,我将有以下代码:
class NewClass(object):
pass
OldClass = NewClass这也可以跨模块工作。
https://stackoverflow.com/questions/39295901
复制相似问题