无法访问全局变量



我试图在导入了一些依赖项的特定环境中执行一些代码,但我一直收到一个错误,说找不到模块。我打开了一个调试器,我在全局环境中看到了这个模块,但当我试图使用正常的作用域方法访问这个模块时,python似乎找不到它

(Pdb) globals['my_import']
<module 'tmp0fZtOs' from '/tmp/tmp0fZtOs.py'>
(Pdb) my_import
*** NameError: name 'my_import' is not defined

我还发现了一些文档,其中提到全局变量需要被显式引用,以便使它们对函数可用,但当我尝试以下操作时,我也会遇到错误。

(Pdb) def temp_function(): global my_import; print my_import
(Pdb) temp_function()
*** NameError: global name 'my_import' is not defined

有什么想法可以让我的执行代码使用这个模块吗?

您声明my_import是全局的,但没有给它赋值,因此它不存在。

def temp_function(): 
    global my_import
    my_import = 1
    print(my_import)
temp_function()
if "my_import" in globals().keys():
    print("Variable is global")
    print(globals()['my_import'])

相关内容

  • 没有找到相关文章

最新更新