所以,这有点棘手。
file1.py
a = None
def set_a():
global a
a = 10
file2.py
from file1 import a, set_a
set_a
print(a)
输出:
None
为什么a的值没有变化?我知道还有其他方法可以更改a的值,但是为什么这不起作用?
将文件2中的set_a
更改为set_a()
。
您需要实际调用set_a
函数才能执行其任何代码。
对于函数来说,仅返回值就更清楚了,您可以在调用脚本中随意命名该值:
# file1.py
def set_a():
return 10
# file2.py
from file1 import set_a
# this doesn't have any reliance on a name existing
# in any namespaces
a = set_a()
对此问题的普遍共识是,尽可能避免使用全局变量,因为它们会使您的代码难以维护。