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