小编Har*_*rry的帖子

从文件中保存和加载类实例

我的项目的一个重要部分是能够将类实例保存和加载到文件中。对于进一步的上下文,我的类既有一组属性又有一些方法。

到目前为止,我已经尝试使用pickle,但它并没有像预期的那样工作。首先,它不加载方法,也不让我添加我最初定义的属性;换句话说,它并不是真正制作我可以使用的类的副本。

相关代码:

class Brick(object):

    def __init__(self, name, filename=None, areaMin=None, areaMax=None, kp=None): 
        self.name = name
        self.filename = filename
        self.areaMin = areaMin
        self.areaMax = areaMax
        self.kp = kp
        self.__kpsave = None
        if filename != None:
            self.__logfile = file(filename, 'w')
    def __getstate__(self):
        f = self.__logfile
        self.__kpsave = []
        for point in self.kp: 
            temp = (point.pt, point.size, point.angle, point.response, point.octave, point.class_id)
            self.__kpsave.append(temp)
        return (self.name, self.areaMin, self.areaMax, self.__kpsave,
                f.name, f.tell())
    def __setstate__(self, state):
        self.value, self.areaMin, self.areaMax, self.__kpsave, name, position = state
        f …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

2
推荐指数
1
解决办法
9220
查看次数

标签 统计

python ×1

python-2.7 ×1