【发布时间】:2018-07-11 14:45:00
【问题描述】:
首先,我完全理解global语句的含义和使用方法。
现在,让我们看看这个:
x = 100
def f():
global x
global xxx
x = 99
return x
print(f())
# >>> 99
print(x)
# >>> 99
可以看到,通过使用global x,我成功的改变了全局环境中x的值。
但是xxx根本不存在,为什么我允许全局它,即使函数执行也不会带来任何错误?
【问题讨论】:
-
我认为
global xxx只是一个多余的语句,但由于它是有效的python 代码,python 解释器只会忽略它,就像母亲忽略你幼稚的错误一样。不过我可能是错的。 -
但是我以为python在运行之前会检查所有编译中的变量边界情况,如果有边界错误,就不会执行?
-
您可以使用
global初始化变量,只需给它们一个名称,尽管我不确定这些变量的默认行为是什么。奇怪的是,我在 Python 3 文档中找不到关于global关键字及其使用的任何内容。 -
我修改了我之前的声明:您可以使用裸
global x声明全局变量,但如果您没有为它们分配任何内容,则无法访问它们。我认为解释器只是把它扔掉并忽略它。