gpt4 book ai didi

python - pickle 和 tkinter 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:30 27 4
gpt4 key购买 nike

为了学习 tkinter,我正在制作一个简单的围棋游戏程序。我现在希望能够使用 pickle 保存游戏,但是当我尝试 pickle 我的 GoBoardModel 对象时,我得到:

PicklingError: Can't pickle 'tkapp' object: <tkapp object at 0x01FCB090>

我想这是因为虽然 GUI 和棋盘的模型分离得很好,但模型仍然引用 View 以推送一些东西,所以 pickle 可能会尝试 pickle 一些 tk东西。当然,我只想 pickle 模型,那么有没有办法告诉 pickle 不要关心对 GUI 的引用?或者另一种解决问题的方法?

我知道我可以去掉这个引用,但我是来学习的:)

最佳答案

是的,查看 __getstate__ 方法。

例如,如果您希望 pickle 忽略 'view' 属性,您可以执行以下操作:

class Whatever(object):

def __getstate__(self):
state = self.__dict__.copy()
del state['view']
return state

关于python - pickle 和 tkinter 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com