Python全局变量内部函数[duplicate]

问题描述 投票:0回答:1

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

def y():

    print(x)

if __name__ == "__main__":

    x=5
    a = y()

输出:5

python python-3.x function global-variables globals
1个回答
1
投票
if __name__ == "__main__":

未定义新的/本地范围。它旨在防止在其他模块导入该模块时执行以下块。

因此在此块中定义x使其成为全局变量,并且之所以有效,是因为您正在调用定义了它的函数[[after。

请注意,导入此模块并从那里调用y会引发错误,因为将不会执行x的定义
© www.soinside.com 2019 - 2024. All rights reserved.