gpt4 book ai didi

Python 模块(分配前引用的模块名称)

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:14 28 4
gpt4 key购买 nike

我在 main() 脚本 (getdata.py) 所在的目录中有一个 vm.py。在 getdata.py 中,我有

import vm
...
x = vm.Something()

然后python报错

UnboundLocalError: local variable 'vm' referenced before assignment

这是为什么呢?导入时没有错误。

更新

我发现如果我这样做了

from vm import * 

相反,它起作用了。同样对于我制作的另一个文件/模块,一个简单的 import 就可以了。我将完整代码上传到 GitHub Gist https://gist.github.com/2259298

最佳答案

在你的 main 里面函数,你有一行 vm = VirtualMemory(args['numFrames'], algo) .这样做的结果是 Python 识别 vm作为函数内部的局部变量,因此当您尝试访问 vm 时, 意思是 vm模块,在本地给它赋值之前,它会提示你没有给它赋值。

结果是您应该重命名变量 vm或者你的模块 vm到别的地方。

(最后一件事:避免 from X import * 语句,它们会使调试变得困难;明确列出您要导入的内容。无论如何,您不想导入像 main 这样的名称。)

关于Python 模块(分配前引用的模块名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952891/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com