python 2,不能用 三的nonlocal
我需要在一个函数内定义一个新的函数,且这个内部函数可以访问外部函数的变量
我做了如下尝试,但结果不对: 结果是2 4 6 6 6 6,我希望的结果是2 4 6 6 4 2
def outer(s):
if s == 4:
return
outer.OuterVar = s
def inner(): #这里不能用lambda因为实际情况下这个函数内部有非常多的内容
outer.OuterVar = outer.OuterVar * 2
inner()
print outer.OuterVar,
outer(s+1)
print outer.OuterVar,
if __name__ == "__main__":
outer(1)
补充说明一下
我希望的代码是这样的,注释掉的代码那行会报错。
def outer(s):
if s == 4:
return
OuterVar = s
def inner():
pass
#OuterVar = OuterVar * 2
inner()
print OuterVar,
outer(s+1)
print OuterVar,
if __name__ == "__main__":
outer(1)