Python:全局环境中的变量赋值是否与函数定义中的变量交互?
此函数表明函数中变量“a”的值受全局环境中“a”的值的影响Python:全局环境中的变量赋值是否与函数定义中的变量交互?,python,function,global,local,Python,Function,Global,Local,此函数表明函数中变量“a”的值受全局环境中“a”的值的影响 a=1 def f(x): print(a) return x+a f(3) 我得到的输出是4,a的打印值是1。根据我对python函数的理解,全局环境与本地环境(函数内部)是分开的,因此我无法解释为什么函数内部的a值为1。有人能解释一下吗。非常感谢 PS:这是我关于堆栈溢出的第一篇文章,所以请原谅我问你是否不喜欢它。你可以从函数中读取全局变量,假设它们没有被同名的局部变量屏蔽。但是,如果希望从函数中写入全局变量,
a=1
def f(x):
print(a)
return x+a
f(3)
我得到的输出是4,a的打印值是1。根据我对python函数的理解,全局环境与本地环境(函数内部)是分开的,因此我无法解释为什么函数内部的a值为1。有人能解释一下吗。非常感谢
PS:这是我关于堆栈溢出的第一篇文章,所以请原谅我问你是否不喜欢它。你可以从函数中读取全局变量,假设它们没有被同名的局部变量屏蔽。但是,如果希望从函数中写入全局变量,则必须显式声明它们
global
。答案可能会有所帮助。