方法属性会导致Python中的pickling错误吗?

2024-10-03 11:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Pygame开发一个小型rpg游戏,并且我一直在尝试使用shelve模块为我的游戏实现一个“save”选项来pickle要保存的对象

我最初在尝试pickle surfaces时遇到了一个错误,所以我返回代码,删除了所有设置为surfaces的属性,并传递了一个字符串引用。然后,我在类中添加了一个blitm()方法,以便在blitting时从字典(没有经过pickle)获取曲面

不过,我还是遇到了同样的错误。所以我想知道在某些方法的主体中使用曲面是否会引起问题?我的布点方法如下:

def blitm(self,dest_surf):
    dest_surf.blit(var.Surf_dict[self.img_ref],self.rect)

如您所见,var.Surf_dict[self.img_ref]根据字符串img_ref从字典中获取要blit的曲面

我也有其他方法使用表面作为背景(例如工具提示)

我不认为这会导致问题,因为当方法没有被调用时,就不需要曲面了

谢谢你的帮助


Tags: 方法字符串selfref游戏img字典错误