; func3()
func1()
func6()
def outer():
def inner():
print("我的天哪")
print("还可以这样写???")
inner()
outer()
inner() # 在全局不能找到局部的内容
def func1():
print("1")
def func2():
print("2")
def func3():
print("3")
print("4")
func3()
print(5)
print("6")
func2()
print("7")
func1()
全局变量一般是不能随意的修改的
a = 10
def func():
# 慎用.
global a # global 表示从全局把一个变量引入到局部, 后面使用的a都是全局变量
a += 10 # ?? a = a + 10 # 现在的a是全局的, 你现在视图改全局变量
print("里面的打印",a)
func()
print("外面的打印", a)
a = 10
def func():
def inner():
# 慎用.
global a # global 表示从全局把一个变量引入到局部, 后面使用的a都是全局变量
a += 10 # ?? a = a + 10 # 现在的a是全局的, 你现在视图改全局变量
print("里面的打印",a)
inner()
func()
print("外面的打印", a)
nonlocal 在局部, 寻找离他最近的外层的一个变量
a = 50
def func1():
# a = 10 # 局部
def func2():
nonlocal a # 不找全局, global找全局
a += 10 # a = a + 10 python不让这么干
print("func2", a)
func2()
print(a)
func1()
print(a)
如果没有nonlocal和global 查找的顺序: 自己, 上一层, 上一层, 上一层
def func0():
a = 50
def func1():
a = 10 # 局部
def func2():
nonlocal a # 不找全局, global找全局
a += 10 # a = a + 10 python不让这么干
print("func2", a)
func2()
print(a)
func1()
  |