python - 字典不给变量赋值

标签 python dictionary variable-assignment

我正在尝试将字典中的值赋给变量,但变量保持不变。该值是另一个字典。

我用来生成字典的代码可以在这里找到: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/

相关文章:

python - 如何将代码升级到Django 2或在Django 1.9中使用类似 "path"的东西?

python - pygame安装: sdl-config command not found

c - 将数字输入到avr中的寄存器中

c++ - 如何从c/c++源代码获取Windows的python .pyd? (更新: brisk now in Python in case that's what you want)

python opencv waitKey(1) 不响应 Mac 上的输入

python - 遍历字典列表和按键分组

python - 如何在 Python 中构建一个所有值都是 [] 的独立实例的字典?

python - 创建字典,其中列表项作为键,列表项出现的次数作为值

compiler-errors - Verilog分配编译器错误

c++ - 为什么可以将整数值赋给未初始化的指针