如何在函数外部访问定义在函数中的全局变量?

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

我的文件中有这样的函数结构:

def rec_count():
    global var
    if var == 5:
        return 
    var += 1
    rec_count()

def count():
    global var
    var = 0 
    rec_count() 
    print(var)

当我打印

var
的值时,它会返回
5
。如果我尝试访问文件中某处的
var
变量,它将返回
NameError
异常。我对这种行为非常满意,因为这是我想要实现的目标,但我无法理解它,因为我希望能够在两个函数之外访问这个变量。我想避免这种情况,以避免与其他同名变量发生冲突。

请帮助我理解为什么

var
无法在这些函数之外访问,即使它被定义为全局。文档指出

全局语句是适用于整个当前代码块的声明。

但我想在我的例子中它是在两个单独的代码块中声明的。

python scope global-variables
1个回答
0
投票

即使使用 global 关键字,也无法在函数外部访问 var 的原因是,全局声明仅告诉 python 在函数内部使用全局 var 并且不要在全局范围内定义它(在函数之外),这就是当您尝试在其他地方访问它时会收到 NameError 的原因。

© www.soinside.com 2019 - 2024. All rights reserved.