数值加载:导致运行时

2024-06-13 13:43:50 发布

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

正在尝试加载pytmx.objects文件变量,我能做到Numpy.保存只是很好,但负载导致它进入一个无限的回报循环。有人知道为什么和怎么修吗?我用numpy save只是因为它不能定期腌制。如果有人知道另一种保存变量的方法,我也愿意接受这些建议。(Json也不起作用。)

Traceback (most recent call last):
  File "main.py", line 375, in <module>
    game.gameLoop()
  File "main.py", line 242, in gameLoop
    save = np.load(savefile)
  File "C:\Users\tayle_000\python game\Cyber Warfare\py\lib\site-packages\numpy\lib\npyio.py", line 419, in load
    pickle_kwargs=pickle_kwargs)
  File "C:\Users\tayle_000\python game\Cyber Warfare\py\lib\site-packages\numpy\lib\format.py", line 640, in read_array
    array = pickle.load(fp, **pickle_kwargs)
  File "C:\Users\tayle_000\python game\Cyber Warfare\py\lib\site-packages\pytmx\pytmx.py", line 214, in __getattr__
    return self.properties[item]
(A Ton More)
RuntimeError: maximum recursion depth exceeded

这是我的密码:

def gameLoop(self):
gameExit=False
#print gameMap.layers
if os.path.isfile(os.path.join('saves','game.save')):
  savefile = open(os.path.join('saves','game.save'), 'rb')
  save = np.load(savefile)
  savefile.close()
  save=save.tolist()
  if save['version']==self.version:
    self.worlds['base'].tmx=save['base']
    self.worlds['servers'].tmx=save['servers']
    self.worlds['res'].tmx=save['res']
    self.gain=save['gain']
  else:
    print "Save file version is incompatible.  Starting new game."
else:
  print "No save file found.  Starting new game."
while not gameExit:
  #############Events
  for event in pygame.event.get():
    if event.type==pygame.QUIT:
      save={'version':self.version, 'base':self.worlds['base'].tmx, 'servers':self.worlds['servers'].tmx, 'res':self.worlds['res'].tmx, 'gain':self.gain}
      savefile = open(os.path.join('saves','game.save'), 'wb')
      np.save(savefile, save)
      savefile.close()
      gameExit=True
      return False

Tags: inpyselfgameosversionsavelib