cPickle无法编写方法

时间:2014-08-04 22:45:16

标签: python pickle

我尝试转储一个类

class ClassificationStatistic(object):     
 def __init__(self):
        self.tp = 0
        self.fp = 0
        self.tn = 0
        self.fn = 0
        self.failedtoparseinput = 0
        self.processed = 0
 def add_sample(self,file,calc_verdict):
    bla-bla-bla
 def merge(self,another):
    bla-bla-bla
 def results(self):
    bla-bla-bla

file = open('test.tmp','wb')            
cPickle.dump(ClassificationStatistic(),file)
file.close()

这个类有三种方法(add_samplemergeresults),但如果我尝试转储它们,那么它们会在test.tmp中失效?为什么?该文件中没有(add_samplemergeresults)字样。

1 个答案:

答案 0 :(得分:0)

cPickle没有序列化方法,因为它不需要。它记录了该对象是ClassificationStatistic的一个实例,这足以说明它具有哪些方法。实际上,实例上没有任何方法对象可以进行pickle;它们是在访问时动态创建的,它们永远不会存储在实例本身上。