#!/usr/bin/python
#filename func_nonlocal.py
def func_outer():
x = 2
print('x is',x)
def func_inner():
nonlocal x
x = 5
func_inner()
print('changed local x to',x)
func_outer(
结果:
x is 2
changed local x to 5
在函数func_outer里面定义了一个函数func_inner,并调用了一次。在外面直接调用函数func_inner会出错。
nonlocal关键字声明x不是本函数的局部变量和在函数里面使用global关键字有相似的地方