在Python函数中调用全局变量与定义全局变量



我对Python还比较陌生,所以请原谅我的无知。

我有两个作用于单个变量var:的函数

var = 8
def func1():
print(var)
def func2():
var += 1
print(var)

除非我将var定义为全局变量:,否则func2将不起作用

def func2():
global var
var += 1
print(var)

什么功能允许我调用全局变量(如在func1中(,但不允许我在不首先显式调用全局变量的情况下重新定义(如func2中(?

编程常见问题解答解释了原因:

在Python中,只在函数内部引用的变量是隐含的全球性。如果变量在函数体,除非明确声明为全局。

尽管一开始有点令人惊讶,但经过片刻的考虑这一方面,对指定的变量要求全局提供了防止意外副作用。另一方面,如果全球化对于所有全局引用,都需要使用global时间您必须将对内置函数或导入模块的组件。这种混乱会挫败全球宣言对识别的有用性副作用。

相关内容

  • 没有找到相关文章

最新更新