全局变量在python中没有更新

2024-05-06 21:46:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个文件。在

在球蛋白.py在

global m_pTest
m_pTest = None

在文件一.py在

^{pr2}$

在文件2.py在

 import globalVar

 def fun():
    intVal = m_pTest.getInt()   # int value from m_pTest object
    print intVal

这是我的简短程序示例,当我运行这个程序时,它给出了文件2.py有趣()

 AttributeError: 'NoneType' object has no attribute 'getInt'

有人能解释一下这个代码有什么问题吗? 谢谢您!在


Tags: 文件pyimport程序noneobjectdefglobal
2条回答

为什么要使用全局变量?在

# FileOne.py
import fileTwo

value = Class.getOutput() 
fileTwo.fun(value)
#Do anything

# fileTwo.py
def fun(value):
    intVal = value.getInt()   
    print intVal

global m_pTest并没有使变量具有神奇的全局性;相反,它在当前作用域中设置名称m_pTest,以引用全局变量(来自外部范围)。所以把它放在globalVar.py中基本上什么也不做。在

如果只想导入变量,可以使用以下命令:

from globalVar import m_pTest

但是,当将m_pTest设置为不同的值时,您不会影响在globalVar.py中创建的原始对象,因此在其他地方不会看到更改。在

相反,您必须正常导入globalVar,然后将m_pTest作为该模块的成员:

^{pr2}$

相关问题 更多 >