Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:全局环境中的变量赋值是否与函数定义中的变量交互?_Python_Function_Global_Local - Fatal编程技术网

Python:全局环境中的变量赋值是否与函数定义中的变量交互?

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”的值受全局环境中“a”的值的影响

a=1

def f(x):
    print(a)
    return x+a

f(3)
我得到的输出是4,a的打印值是1。根据我对python函数的理解,全局环境与本地环境(函数内部)是分开的,因此我无法解释为什么函数内部的a值为1。有人能解释一下吗。非常感谢


PS:这是我关于堆栈溢出的第一篇文章,所以请原谅我问你是否不喜欢它。

你可以从函数中读取全局变量,假设它们没有被同名的局部变量屏蔽。但是,如果希望从函数中写入全局变量,则必须显式声明它们
global
。答案可能会有所帮助。