次のような回路基板に関連付けられているデータを格納するだけの単純なクラスがあります。
class boardClass():
def __init__(self,boardName):
self.__name=boardName
self.__boardMappings= {boardName:{
'FastMode':
{'CPU_A':{'mipi':[], 'gpen':[]},
'CPU_B':{'mipi':[], 'gpen':[]}
'SlowMode':
{'CPU_A':{'mipi':[], 'gpen':[]},
'CPU_B':{'mipi':[], 'gpen':[]}
}
}
}
def setMode(self, board, mode, cpu,mipi,gpen):
self.__boardMappings[board][mode][cpu]['mipi']=mipi
self.__boardMappings[board][mode][cpu]['gpen']=gpen
def getName(self):
return self.__name
別のクラスで pickle を使用して、boardClass
データをファイルに保存し、後で読み取ります。
def onSave(self,boardName):
board=boardClass.boardClass(boardName)
name=boardName+".brd"
file=open(name,"wb")
pickle.dump(board,file)
loadedBoard= pickle.load( open( file, "rb" ))
print "Loaded board name is : ",loadedBoard.getName()
メソッドを呼び出しonSave()
てboardClassをピクルすると、最後にこれで終わるいくつかのエラーが発生します。
File "C:\Python27\lib\copy_reg.py", line 70, in _reduce_ex
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle PySwigObject objects
この boardClass は非常に単純なコンテナーです。どうして漬けられないの?