我的文件中有这样的函数结构:
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
无法在这些函数之外访问,即使它被定义为全局。文档指出
全局语句是适用于整个当前代码块的声明。
但我想在我的例子中它是在两个单独的代码块中声明的。
即使使用 global 关键字,也无法在函数外部访问 var 的原因是,全局声明仅告诉 python 在函数内部使用全局 var 并且不要在全局范围内定义它(在函数之外),这就是当您尝试在其他地方访问它时会收到 NameError 的原因。