日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中的变量的作用_Python中的变量作用域

發布時間:2024/7/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中的变量的作用_Python中的变量作用域 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python中變量作用域包括:

L (Local) 局部作用域,函數內部聲明但沒有使用global的變量

E (Enclosing) 閉包函數外的函數中,def或者lambda的本地作用域

G (Global) 全局作用域,函數中使用global聲明的變量或在模塊層聲明的變量

B (Built-in) 內建作用域,python的內置類和函數等

當在函數中使用未認證的變量名時,將依照L->E->G->B的順序搜索。

Python除了def/class/lambda 外,其他如: if/elif/else/? try/except? for/while并不能改變其作用域。定義在他們之內的變量,外部還是可以訪問。

1.變量在函數內部第一次出現,且在=左邊,則為局部變量,作用在函數內部。

1 num = 100

2 deffunc():3 num = 200 #局部變量

4 print(num)5

6 func() #輸出200

7 print(num) #輸出100

1 num = 100

2 deffunc():3 num = num + 200 #報錯UnboundLocalError: local variable 'num' referenced before assignment,說明num是局部變量,在賦值前就被引用了

4 print(num)5

6 func()

2.變量在函數內部第一次出現是在=右邊,或作為函數參數,且之前已經定義了全局變量,那這里就是對全局變量的引用。

1 num = 100

2 deffunc():3 new = num + 200

4 print(new)5

6 func() #輸出300

7 print(num) #輸出100

1 num = 100

2 deffunc():3 print(num)4

5 func() #輸出100

3.如果需要在函數內部引用并修改全局變量,則需使用global關鍵字。

1 num = 100

2 deffunc():3 globalnum4 num = 'abc'

5 print(num)6

7 func() #輸出abc

8 print(num) #輸出abc

4.nonlocal關鍵字用來在函數或其他作用域中使用外層(非全局)變量

1 #利用閉包返回一個計數器函數,每次調用它返回遞增整數

2 defcreateCounter():3 i =04 defcounter():5 nonlocal i6 i += 1

7 returni8 returncounter9

10

11 #測試:

12 counterA = createCounter() #返回counter()代碼塊及變量i=1

13 print(counterA(), counterA(), counterA(), counterA(), counterA()) #1 2 3 4 5 每次執行counterA()時,就是執行counter()代碼塊,改變i的值

14 counterB = createCounter() #返回counter()代碼塊及變量i=1

15 if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:16 print('測試通過!')17 else:18 print('測試失敗!')

總結

以上是生活随笔為你收集整理的python中的变量的作用_Python中的变量作用域的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。