Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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_Python 3.x_Function_Global Variables_Globals - Fatal编程技术网

函数内部的Python全局变量

函数内部的Python全局变量,python,python-3.x,function,global-variables,globals,Python,Python 3.x,Function,Global Variables,Globals,我需要帮助解释以下行为,为什么x是一个全局变量 def y(): print(x) if __name__ == "__main__": x=5 a = y() 输出: 5 if __name__ == "__main__": 不定义新的/本地范围。它的设计目的是防止在另一个模块导入模块时执行下面的块 因此,在这个块中定义x会使它成为全局的,并且它可以工作,因为您在定义函数之后调用它 请注意,导入此模块并从那里调用y将引发错误,因为x的定义将不会执行,因为您正在

我需要帮助解释以下行为,为什么x是一个全局变量

def y():

    print(x)

if __name__ == "__main__":

    x=5
    a = y()
输出:
5

if __name__ == "__main__":
不定义新的/本地范围。它的设计目的是防止在另一个模块导入模块时执行下面的块

因此,在这个块中定义
x
会使它成为全局的,并且它可以工作,因为您在定义函数之后调用它


请注意,导入此模块并从那里调用
y
将引发错误,因为
x
的定义将不会执行,因为您正在全局范围内设置它。“如果”语句并没有改变这一事实