我是一个相对新手的Python开发者,在阅读语言文档时,我看到了一行代码:
解除绑定外围范围引用的变量名是不合法的;编译器会报告SyntaxError。
所以在学习的过程中,我试图在交互式shell中创建这个错误,但我还没有找到方法。我正在使用Python v2.7.3,因此像nonlocal这样的关键字并不能成功。
def outer():
a=5
def inner():
nonlocal a
print(a)
del a
如果不使用 nonlocal,那么在内部函数中出现 del a
的时候,Python 会将其解释为未绑定的本地变量,并抛出一个 UnboundLocalError
异常。显然,全局变量有一个例外,那么如何创建一种情况,在这种情况下我“非法”取消绑定了一个被封闭作用域引用的变量名呢?