最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python函數(shù)命名空間和作用域(Local與Global)

 更新時(shí)間:2022年03月08日 10:22:50   作者:?python自學(xué)網(wǎng)  
這篇文章主要介紹了Python函數(shù)命名空間和作用域分別介紹Local與Global模式,內(nèi)容詳細(xì),具有一定的參考價(jià)值,需要的小伙伴可以參考一下

摘要:

Python函數(shù)是一個(gè)包裝起來的代碼塊,通過前面的返回函數(shù),閉包函數(shù)等課程,我們發(fā)現(xiàn)其內(nèi)部變量定義在不同的位置,使用起來的效果就有所不同,這就是python函數(shù)的作用域和命名空間。

1.Local作用域

a = 100
def func5():
? ? b = 50
? ? a = 99
? ? print('函數(shù)內(nèi)a', a)
? ? print('函數(shù)內(nèi)b', b)

print('函數(shù)外a', a)
func5()
print('函數(shù)外b', b)

返回結(jié)果:

函數(shù)外a 100
函數(shù)內(nèi)a 99
函數(shù)內(nèi)b 50
Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/python知識(shí)總結(jié)/2.python自學(xué)網(wǎng)-通用模塊-視頻源碼/test.py", line 12, in <module>
    print('函數(shù)外b', b)
NameError: name 'b' is not defined

上面函數(shù)中定義b變量,所以外面無法輸出。

2.Enclosing function locals作用域

a = 100
def func5():
? ? b = 50
? ? print('函數(shù)內(nèi)a', a)
? ? print('函數(shù)內(nèi)b', b)
? ? def func6():
? ? ? ? print('下層函數(shù)內(nèi)a', a)
? ? ? ? print('下層函數(shù)內(nèi)b', b)
? ? func6()
func5()

返回結(jié)果:

函數(shù)內(nèi)a 100
函數(shù)內(nèi)b 50
下層函數(shù)內(nèi)a 100
下層函數(shù)內(nèi)b 50

3.Global全局變量

a = 123
def func():
? ? a = 100
? ? print(a)
print(a)
func()
print(a)

a = 123
def func():
? ? global a ?# 這里不能使用nonlocal
? ? a = 100
? ? print(a)
? ? print(locals()) ?# 查看局部變量
? ? print(globals()) ?# 查看全局變量
print(a)
func()
print(a)

4.非局部變量nonlocal

def func5():
? ? b = 50
? ? print(b)
? ? def func6():
? ? ? ? nonlocal b ?# 非局部的,只適用于閉包內(nèi)部
? ? ? ? b = 60
? ? ? ? print(b)
? ? func6()
? ? print(b)
func5()

5.就近原則

b = 1111
def func5():
? ? b = 50
? ? print(b)
? ? def func6():
? ? ? ? b = 60
? ? ? ? print(b) ?# 這里的b從內(nèi)到外究竟查找
? ? func6()
? ? print(b)
func5()


a = 100
def func5():
? ? b = 50
? ? print(a)
? ? print(b)
? ? def func6():
? ? ? ? b = 60
? ? ? ? print(b)
? ? ? ? print(a)
func5()

6.函數(shù)執(zhí)行順序

a = 123
def func1():
? ? print(a)
? ? print(b)
func1() ?# 不能打印b
b = 456
func1() ?# 可以打印b

7.循環(huán)、判斷代碼塊中作用域問題

if True:
? ? a = 100
print(a)


for i in range(1, 10):
? ? print(i)
print(i)

循環(huán)代碼塊中沒有作用域這樣的情況。

到此這篇關(guān)于Python函數(shù)命名空間和作用域(Local與Global)的文章就介紹到這了,更多相關(guān)Python命名空間和作用域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

昂仁县| 集贤县| 汶川县| 华蓥市| 镇安县| 九龙城区| 连平县| 三门峡市| 荣昌县| 平果县| 太仆寺旗| 屏东市| 滁州市| 郸城县| 含山县| 沁源县| 开江县| 中阳县| 陕西省| 年辖:市辖区| 甘孜| 体育| 望城县| 桐庐县| 德兴市| 东港市| 长沙县| 天等县| 金秀| 海兴县| 恩施市| 石嘴山市| 桃源县| 丹棱县| 双城市| 洱源县| 汪清县| 泰和县| 本溪| 长丰县| 南溪县|