函数内部的Python全局变量
我需要帮助解释以下行为,为什么x是一个全局变量函数内部的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的定义将不会执行,因为您正在
def y():
print(x)
if __name__ == "__main__":
x=5
a = y()
输出:
5
if __name__ == "__main__":
不定义新的/本地范围。它的设计目的是防止在另一个模块导入模块时执行下面的块
因此,在这个块中定义x
会使它成为全局的,并且它可以工作,因为您在定义函数之后调用它
请注意,导入此模块并从那里调用
y
将引发错误,因为x
的定义将不会执行,因为您正在全局范围内设置它。“如果”语句并没有改变这一事实