从python3中的子句中读取

时间:2016-01-21 02:13:12

标签: python-3.x keyerror

我有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。为什么呢?

1 个答案:

答案 0 :(得分:0)

如果我把它放在一个文件中,它可以工作:

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的事情。