中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python函數命名空間和作用域是什么

發布時間:2022-03-08 13:41:44 來源:億速云 閱讀:112 作者:小新 欄目:開發技術

這篇文章主要介紹Python函數命名空間和作用域是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1.Local作用域

a = 100
def func5():
    b = 50
    a = 99
    print('函數內a', a)
    print('函數內b', b)

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

返回結果:

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

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

2.Enclosing function locals作用域

a = 100
def func5():
    b = 50
    print('函數內a', a)
    print('函數內b', b)
    def func6():
        print('下層函數內a', a)
        print('下層函數內b', b)
    func6()
func5()

返回結果:

函數內a 100
函數內b 50
下層函數內a 100
下層函數內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  # 非局部的,只適用于閉包內部
        b = 60
        print(b)
    func6()
    print(b)
func5()

5.就近原則

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


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

6.函數執行順序

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

7.循環、判斷代碼塊中作用域問題

if True:
    a = 100
print(a)


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

循環代碼塊中沒有作用域這樣的情況。

以上是“Python函數命名空間和作用域是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定边县| 宁远县| 泸州市| 英山县| 三台县| 隆回县| 彰化市| 金阳县| 盐津县| 高邑县| 湟中县| 柳林县| 车险| 乌审旗| 分宜县| 乌兰浩特市| 枣强县| 南充市| 将乐县| 偏关县| 灌阳县| 都昌县| 囊谦县| 虎林市| 建始县| 博罗县| 开平市| 洛川县| 甘谷县| 阜城县| 宁夏| 盐亭县| 和田县| 仲巴县| 若尔盖县| 台东县| 晋宁县| 徐闻县| 余姚市| 彰化市| 大英县|