我用這個代碼:
import cPickle
import traceback
class someClass():
def __init__(self):
#set name from variable name. http://stackoverflow.com/questions/1690400/getting-an-instance-name-inside-class-init
(filename,line_number,function_name,text)=traceback.extract_stack()[-2]
def_name = text[:text.find('=')].strip()
self.name = def_name
try:
self.load()
except:
##############
#to demonstrate
self.someAttribute = 'bla'
self.someAttribute2 = ['more']
##############
self.save()
def save(self):
"""save class as self.name.txt"""
file = open(self.name+'.txt','w')
file.write(cPickle.dumps(self.__dict__))
file.close()
def load(self):
"""try load self.name.txt"""
file = open(self.name+'.txt','r')
dataPickle = file.read()
file.close()
self.__dict__ = cPickle.loads(dataPickle)
這段代碼保存並從其實際的類實例名加載類。代碼來自我的博客http://www.schurpf.com/python-save-a-class/。
其他要求?速度/大小/安全性/便攜性? http://docs.python.org/library/json.html可能是一個選項。 – voyager 2010-02-26 22:07:02
需求=容易和快速做到這一點做另一項工作) – Mike 2010-02-26 22:13:45