玩蛇网提供最新Python编程技术信息以及Python资源下载!

python2.7函数删除一个全局变量为什么不报SyntaxError错误?

a = 3

def x():
  global a
  del(a)

print(a)
x()

在python2.7中执行上面这段代码并没有问题!但是在python2.7的文档中(没有锚记,大概在第10段)
有这样一句话:
It is illegal to unbind a name referenced by an enclosing scope; the compiler will report a SyntaxError.
我在SO上也看到了同样的一个提问,但是它答案给出的测试代码是这样的:

>>> def outer():
...     a=5
...     def inner():
...         nonlocal a
...         print(a)
...         del a
SyntaxError: can not delete variable 'a' referenced in nested scope

但是在python2.7中,并没有nonlocal这个关键字(事实上,我在3.2上测试上面这段代码也是没有问题的)。我想知道,如果这文档(2.7)上这句话是正确的,那么测试代码(2.7)是怎样的?

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd20412.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2018年03月01日 - 19时26分56秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules