gpt4 book ai didi

python模块变量混淆

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:39 25 4
gpt4 key购买 nike

这是我的代码:

一个模块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

关于python模块变量混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com