我在与main()脚本相同的目录中有一个vm.py(getdata.py).在getdata.py中,我有
import vm
...
x = vm.Something()
然后python抱怨
UnboundLocalError: local variable 'vm' referenced before assignment
这是为什么?导入时没有错误.
UPDATE
我发现如果我这样做了
from vm import *
相反,它奏效了.对于我制作的另一个文件/模块,一个简单的导入工作.我将完整代码上传到GitHub Gist https://gist.github.com/2259298
最佳答案 在你的主要功能中,你有一行vm = VirtualMemory(args [‘numFrames’],algo).这样做的结果是Python将vm识别为函数内部的局部变量,因此当您尝试访问vm(意味着vm模块)时,在向本地分配值之前,它会抱怨您没有赋值它.
它的结果是你应该将你的变量vm或你的模块vm重命名为其他东西.
(最后一件事:避免使用X import *语句,它们会使调试变得困难;列出你明确导入的内容.你不想导入像main这样的名字.)