Python模块(分配前引用的modulename)
我在与Python模块(分配前引用的modulename),python,python-3.x,Python,Python 3.x,我在与main()脚本(getdata.py)相同的目录中有一个vm.py)。在getdata.py中,我有 import vm ... x = vm.Something() 然后python抱怨 UnboundLocalError: local variable 'vm' referenced before assignment 为什么呢?导入时没有错误 更新 我发现如果我这样做了 from vm import * 相反,它起了作用。同样对于我制作的另一个文件/模块,一个简单的导入也可
main()
脚本(getdata.py
)相同的目录中有一个vm.py
)。在getdata.py
中,我有
import vm
...
x = vm.Something()
然后python抱怨
UnboundLocalError: local variable 'vm' referenced before assignment
为什么呢?导入时没有错误
更新
我发现如果我这样做了
from vm import *
相反,它起了作用。同样对于我制作的另一个文件/模块,一个简单的
导入
也可以工作。我将完整的代码上传到GitHub Gist在您的main
函数中,有一行vm=VirtualMemory(args['numFrames',algo)
。这样做的结果是Python将vm
识别为函数内部的局部变量,因此当您尝试访问vm
(即vm
模块)时,在本地为其赋值之前,它会抱怨您没有为其赋值
结果是,您应该将变量vm
或模块vm
重命名为其他名称
(最后一件事:避免使用
from X import*
语句,因为它们会使调试变得困难;请明确列出您要导入的内容。无论如何,您不希望导入像main
这样的名称。)本身就可以了。可能在您的代码中还有其他对vm的引用,您在…
部分中删除了这些引用,因为您认为它们不相关,但实际上它们是相关的。例如,请参阅或。@DSM,在camel情况下,使用gist()命令行参数的观察结果和完整代码更新post--numReferences
通常作为--num references
或--references
@ChrisMorgan执行,谢谢您让我知道:)