如何创建功能的pickle文件(reg
)?我得到的错误是
不能defaultDict
pickle function objects
堆栈跟踪:
from collections import defaultdict
dtree = lambda: defaultdict(tree)
try: import cPickle as pickle
except: import pickle
#Create defaultdict object:
hapPkl = dtree()
#Create Pickle file
f = open("hapP.pkl","wb")
pickle.dump(hapPkl,f)
f.close()
答案 0 :(得分:4)
cPickle
错误消息有点误导; pickle
版本更好。并不是说你不能腌制功能;它们需要__name__
提供。 lambda将__name__
设置为'<lambda>'
,因此它不可选。使用def
:
def tree():
return defaultdict(tree)
它将是可挑选的。 (当你取消它时,你仍然需要tree
的匹配定义。)
答案 1 :(得分:1)
一个简单的解决方法是以不同的方式实现树数据结构,而不使用build_exe_options = {
"include_msvcr": True,
"includes": [ 'Icon.ico' , 'PlayTube.ipa' , 'libmobiledevice/' ],
}
:
defaultdict