Python-15-函数_04_作用域

 1 ######作用域在定义函数时就已经固定住了,不会随着调用位置的改变而改变######
 2 # 程序一
 3 name = "Newmet"
 4 def foo():
 5     name = "Newmet1"
 6     def bar():
 7         print(name)
 8     return bar
 9 a = foo()       # 返回值:bar 是函数bar的内存地址
10 a()
11 
12 # 程序二
13 name = "Newmet"
14 def foo():
15     name = "Newmet1"
16     def bar():
17         name = "Newmet2"
18         def ff():
19             print(name)
20         return ff
21     return bar
22 # a = foo()       # 返回值:bar  是函数bar的内存地址
23 # b = a()         # 调用函数:bar,返回值:ff 是函数ff的内存地址
24 # b()             # 调用函数:ff
25 # 上面三行简写为:
26 foo()()()
27 
28 # foo() 调用foo函数,返回值:bar(是该函数的内存地址)
29 # foo()() 调用bar函数,返回值:ff(是该函数的内存地址)
30 # foo()()() 调用ff函数,结果:Newmet2
31 # foo()()() 是根据每层返回给的内存地址,一层层的再调用下去的。
32 
33 ######作用域在定义函数时就已经固定住了,不会随着调用位置的改变而改变######

 

posted on 2018-11-13 17:48  NewMet  阅读(89)  评论(0编辑  收藏  举报

导航