科技 新浪科技 雲計算開發學習筆記:Python3 變數查找

雲計算開發學習筆記:Python3 變數查找

原標題:雲計算開發學習筆記:Python3 變數查找

在Python3中查找變數的順序為:「在局部找不到,便會去局部外的局部找(例如閉包),再找不到就會去全局找,再去內置中找」。可以看一個具體的例子。

Python 的一個內建值 int,我們首先將其賦值為 0,然後定義一個函數 fun1()。

ff36-izeysay9655946.jpg

函數 fun1() 的作用就是調用函數 fun2() 來列印 int 的值。

調用函數 fun1():

2ee8-izeysay9655944.jpg

因為 local 中的 int = 2,函數將其列印出來。

將函數 fun2() 中的 int = 2 刪除:

2caa-izeysay9656182.jpg

調用函數 fun1():

6c55-izeysay9656181.jpg

因為 local 找不到 int 的值,就去上一層 non-local 尋找,發現 int = 1 並列印。

而進一步刪除函數 fun1() 中的 int = 1:

ed36-izeysay9656372.jpg

調用函數 fun1():

e9f5-izeysay9656371.jpg

因為 local 和 non-local 都找不到 int 的值,便去 global 中尋找,發現 int = 0 並列印。

若刪除 int = 0這一條件:

ccb2-izeysay9656592.jpg

調用函數 fun1():

e1e9-izeysay9656594.jpg

因為 local、non-local、global 中都沒有 int 的值,便去 built-in 中尋找 int 的值,即:

fba7-izeysay9656773.jpg