Python修改全局变量

问题描述 投票:0回答:2

所以,这有点棘手。

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的值,但是为什么这不起作用?

python python-3.x import global-variables global
2个回答
0
投票

将文件2中的set_a更改为set_a()

您需要实际调用set_a函数才能执行其任何代码。


0
投票

对于函数来说,仅返回值就更清楚了,您可以在调用脚本中随意命名该值:

# 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()

对此问题的普遍共识是,尽可能避免使用全局变量,因为它们会使您的代码难以维护。

© www.soinside.com 2019 - 2024. All rights reserved.