从 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
之间肯定发生了一些事情。
我有 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
之间肯定发生了一些事情。