从 python3 中的 subdict 读取

Reading from subdict in python3

我有 2 个字典。一份包含本地玩家数据,一份列出包含子目录的玩家:

      class GameData:
        def __init__(self):
          self.player  =  {'id'           : 1453339642,
                           'positionX'    : 123,
                           'positionY'    : 0
                          }

          self.players =  {1453339642:
                                  {'name'         : "Admin"}
                          }
     gameData = GameData()

然后我打印出来检查是否一切正常:

            for x in gameData.player:
                print (str(x),':',gameData.player[x])

            print("\n\n")

            for x in gameData.players:
                print (str(x))
                for y in gameData.players[x]:
                    print ('    ',y,':',gameData.players[x][y])
            print("\n\n")

这导致:

            id : 1453339642
            positionY : 0
            positionX : 123

            1453339642
                 name : Admin

当我现在想访问播放器中的播放器 ID 时

            #print(str(type(gameData.player)))
            #print(str(type(gameData.players)))
            print(str(type(gameData.players[1453339642])))

结果我得到 KEYERROR。为什么?

如果我将其放入文件中,它会起作用:

class GameData:
    def __init__(self):
        self.player  =  {'id'           : 1453339642,
                         'positionX'    : 123,
                         'positionY'    : 0
        }

        self.players =  {1453339642:
                         {'name'         : "Admin"}
        }
gameData = GameData()
print(str(type(gameData.players[1453339642])))

只有缩进与您的代码不同。 gameData 在实例化和最终的 print 之间肯定发生了一些事情。