无法访问更新的全局变量的值

Unable to access the updated global variable's value

假设我有两个 Python 文件:

  1. abc.py:
from .config import *
update_a()
print_a() # prints 5
print(a)  # prints 2 rather than 5 even after calling update_a() and using global in update_a()
  1. config.py:
a = 2

def update_a():
    global a
    a = 5

def print_a():
    global a
    print(a) # prints 5

abc.py 访问时,config.py 中的全局变量似乎没有更新值。

当您执行导入时说 from .config import *,变量 a 被导入为本地范围。对 a 的任何修改都将在 abc.py 的范围内发生,而不是在 config.py 的范围内发生,而对 update_a()print_a() 的调用正在修改变量 a config.py

以内

添加到乔的答案中,您可以使用以下代码实现您想要的:

import config as config

config.update_a()
config.print_a() # prints 5

# This will print the global variable in 'config.py'
print(config.a)  # prints 5