我在一个项目中有三个Python文件:
'''lib.py
library file that first defines and also accesses a boolean flag'''
vflag = False
...
def lib_method()
global vflag
if not vflag:
do_something_here
'''app.py
main application that sets the boolean flag defined in lib.py'''
import lib
lib.vflag = method_that_sets_or_resets_vflag()
'''processor.py
does some processing and needs to access the bool flag'''
from lib import *
...
def processor_method()
global vflag
...
if vflag:
do_something_here
我能够在app.py中设置/重置标志,但处理器方法无法获取此布尔变量的正确值。
它仅获取lib.py开始设置的任何内容(而不是app.py设置的内容)。要求是访问由app.py在运行时设置的值,而不是由lib.py初始化的值
我在app.py和processor.py中以不同的方式导入lib文件。这会有所不同吗?
这可能是一个基本错误,因此如果有人可以指向特定的知识库,我将不胜感激。 同时,这也影响了我对全局变量的理解。如果我把一个变量定义为“global”,这是否意味着这个变量在导入此变量的所有文件(或包含变量定义的文件)中都保持为全局变量?