Skip to main content
 首页 » 编程设计

python模块变量混淆

2025年05月04日10haluo1

这是我的代码:

一个模块settings.py:

My_KEY = "" 

我正在另一个模块中使用这个 MY_KEY

我的模块.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