我正在尝试将字典中的值赋给变量,但变量保持不变。该值是另一个字典。
我用来生成字典的代码可以在这里找到:http://pastebin.com/Q2Hc8Ktp
我自己写的,测试过没有这个问题。
这是我尝试从字典中复制字典的代码片段。
_classes = {}
def populateClasses():
print "Classes Exist"
cp = Preferences(''.join([resource_path,"resources.ini"]))
print cp
_classes = cp.getPreferences()['Classes']
populateClasses()
print _classes
当我打印出 cp 时,它显示了正确的数据,但是当我尝试打印 _classes 时,它只显示了{}
注意:从函数内部打印 _classes 可以正常工作,但不能从函数外部打印。 _classes 在全局范围内定义
-编辑-
这里还有一些示例数据:
[Classes]
Wizard = Arcana, Bluff
Warrior = Endurance, Intimidate
Ranger = Nature, Perception
Bard = Heal, History
最佳答案
如果要改变全局变量_classes
的值,需要使用global
:
def populateClasses():
global _classes # <<<<<< THIS
print "Classes Exist"
cp = Preferences(''.join([resource_path,"resources.ini"]))
print cp
_classes = cp.getPreferences()['Classes']
如果没有这个,您的方法将创建一个单独的局部变量,也称为 _classes
。一旦您的方法返回,此变量就会超出范围。
关于python - 字典不给变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16504748/