我有一堆从导入的类中创建的对象
module = imp.load_source(packageName, packagePath)
我需要腌制。只要packagePath
直接在Python路径或工作目录中,就可以完美地工作。在
但一旦我把它移到别的地方,我就害怕了
^{pr2}$我尝试添加一个__reduce__
方法,该方法将类作为第一个值返回。我尝试使用dill
,它被认为能够序列化完整的类,而不是对该类的简单引用(我尝试将它与__reduce__
)结合使用。在
当前的工作方式是在一个负责导入包的对象中,将它们与包路径一起进行双重酸洗:
class Container(object):
def __init__(self, packagePath, packageName, objectsDump= None):
self.package = imp.load_source(packageName, packagePath)
self.packagePath = packagePath
self.packageName= packageName
if objectsDump is not None:
self.objects = dill.loads(objectsDump)
def __reduce__(self):
return (self.__class__,
(self.packagePath, self.packageName, dill.dumps(self.objects))
我发现这个方法真的很复杂,我想知道:有没有一种更像Python的方法来实现这一点?
注意:所有这些都发生在python2.7.10,dill0.2.6中。所有要序列化的对象都是新样式的对象(继承自object
)。在
目前没有回答
相关问题 更多 >
编程相关推荐