【发布时间】:2018-10-03 10:50:49
【问题描述】:
这是我的例子
x=0
def outer():
x = 1
def i1():
nonlocal x
x = 2
print("inner1:", x)
i1()
print("outer:", x)
def i2():
nonlocal x
x = 3
print("inner2:", x)
i2()
print("outer:", x)
def i3():
global x
print("inner3:", x)
i3()
print("outer:", x)
outer()
print("global:", x)
在我的 Jupyter 中输出
inner1: 2
outer: 2
inner2: 3
outer: 3
inner3: 0
outer: 3
global: 0
为什么 outer 的值为 0?
【问题讨论】:
-
"为什么 outer 的值为 0?" 根据您的输出,它的值为 3。
-
如果你问的是 global
x,那是因为你从来没有给它赋值 0 以外的值。