Python 泡菜和开胃菜的问题
为了学习tkinter,我正在制作一个简单的围棋游戏程序。我现在希望能够使用pickle保存游戏,但是当我尝试pickle我的Python 泡菜和开胃菜的问题,python,tkinter,pickle,Python,Tkinter,Pickle,为了学习tkinter,我正在制作一个简单的围棋游戏程序。我现在希望能够使用pickle保存游戏,但是当我尝试pickle我的GoBoardModel对象时,我得到: PicklingError: Can't pickle 'tkapp' object: <tkapp object at 0x01FCB090> PicklingError:无法pickle'tkapp'对象: 我猜这是因为尽管GUI和go board的模型非常分离,但模型仍然有一个视图引用,以便推送一些内容,所以
GoBoardModel
对象时,我得到:
PicklingError: Can't pickle 'tkapp' object: <tkapp object at 0x01FCB090>
PicklingError:无法pickle'tkapp'对象:
我猜这是因为尽管GUI和go board的模型非常分离,但模型仍然有一个视图引用,以便推送一些内容,所以pickle可能会尝试pickle一些tk内容。当然,我只想pickle模型,那么有没有办法告诉pickle不要关心对GUI的引用?还是另一种解决问题的方法
我知道我可以摆脱这个引用,但我在这里学习:)是的,研究一下
\uu getstate\uuu
方法
例如,如果希望pickle忽略“view”属性,可以执行以下操作:
class Whatever(object):
def __getstate__(self):
state = self.__dict__.copy()
del state['view']
return state
是的,看看
\uu getstate\uu
方法
例如,如果希望pickle忽略“view”属性,可以执行以下操作:
class Whatever(object):
def __getstate__(self):
state = self.__dict__.copy()
del state['view']
return state