局部变量和全局变量
函數內部沒有global關鍵字:
①有聲明局部變量:用函數內部自己的局部變量
②無聲明局部變量:用函數外部的全局變量,雖然無法進行重新賦值,但對于可變類型的數據可進行內部數據的操作
函數內部有global關鍵字:
global聲明全局變量時位于函數最前面
函數內部有nonlocal關鍵字:
nonlocal指定上一級變量
全局變量用全大寫,局部變量用全小寫
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 View Code
①有聲明局部變量:用函數內部自己的局部變量
②無聲明局部變量:用函數外部的全局變量,雖然無法進行重新賦值,但對于可變類型的數據可進行內部數據的操作
函數內部有global關鍵字:
global聲明全局變量時位于函數最前面
函數內部有nonlocal關鍵字:
nonlocal指定上一級變量
全局變量用全大寫,局部變量用全小寫
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 View Code
?
轉載于:https://www.cnblogs.com/SakuraYuanYuan/p/10308298.html
總結
- 上一篇: 【转载】java读取.propertie
- 下一篇: 二分类预测用的几个预测结果精确度计算方法