a = 3def 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 aSyntaxError: can not delete variable 'a' referenced in nested scope但是在python2.7中,并没有nonlocal这个关键字(事实上,我在3.2上测试上面这段代码也是没有问题的)。
添加回答
举报
0/150
提交
取消