我尝试转储一个类
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_sample
,merge
,results
),但如果我尝试转储它们,那么它们会在test.tmp
中失效?为什么?该文件中没有(add_sample
,merge
,results
)字样。
答案 0 :(得分:0)
cPickle没有序列化方法,因为它不需要。它记录了该对象是ClassificationStatistic
的一个实例,这足以说明它具有哪些方法。实际上,实例上没有任何方法对象可以进行pickle;它们是在访问时动态创建的,它们永远不会存储在实例本身上。