1. 程式人生 > >Python-15-函式_04_作用域

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 ######作用域在定義函式時就已經固定住了,不會隨著呼叫位置的改變而改變######