这是我的代码:
模块settings.py:
My_KEY = ""
我在另一个模块中使用这个MY_KEY
my_module.py
from settings import My_KEY
def function_a():
MY_KEY = "abcd"
def function_b():
function_a();
print My_KEY
我希望在调用function_b()时在输出中看到“ abcd”,但是我怎么会得到空字符串。我完全迷路了
最佳答案
默认情况下,当在函数内部遇到赋值语句时,Python会将左侧的变量作为局部变量。
如果要在函数中修改全局变量,请使用global
statement将该变量声明为全局变量:
def function_a():
global My_KEY
My_KEY = "abcd"
但是,最好避免从函数内部修改全局变量。从长远来看,它会使代码更难理解。您可以改用
My_KEY
作为function_a
的返回值:def function_a():
My_KEY = "abcd"
return My_KEY
def function_b():
My_KEY = function_a()
print My_KEY
关于python - python模块变量混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18345672/