无法访问更新的全局变量的值
Unable to access the updated global variable's value
假设我有两个 Python 文件:
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()
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
假设我有两个 Python 文件:
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()
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