1 name = 'chen'
2 def test():
3 global name #指向全局变量
4 name = 'li'
5 print(name)
6 test()
7 print(name)
8 # li
9 # li
10
11
12 name = 'chen'
13 def change():
14 name = 'liu'
15 def change1():
16 nonlocal name #指定上一级变量
17 name = 'li'
18 print(name)
19 change1()
20 print(name)
21 change()
22 print(name)
23 # li
24 # li
25 # chen
26
27
28 name='alex'
29 def foo():
30 name='lhf'
31 def bar():
32 name='wupeiqi'
33 def tt():
34 print(name)
35 return tt
36 return bar
37
38 func=foo() #bar地址作为返回值传给func===>func = bar
39 print(func)
40 func()() #===>bar()()===>tt地址作为返回值传出来===>tt()==>print(name)
41 # <function foo.<locals>.bar at 0x0000001C74519BF8>
42 # wupeiqi
43
44 name='alex'
45 def foo():
46 name='lhf'
47 def bar():
48 print(name)
49 return bar
50
51 func=foo() #将bar地址作为返回值传给func====>func = bar
52 print(func)
53 func() #bar()====>print(name)
54 # <function foo.<locals>.bar at 0x0000001C74519B70>
55 # lhf