Pyhton 函式作用域

2021-10-23 06:16:50 字數 585 閱讀 3921

python 是靜態作用域,變數的作用域源於它在**中的位置。在不同的位置,可能有不同的命名空間。

是作用域的體現形式。

函式的命名空間

當前整個函式體範圍

外部巢狀函式的命名空間

作用範圍:閉包函式

全域性命名空間

作用範圍:當前模組(檔案)

內建模組命名空間

作用範圍:所有模組(檔案)

python 中沒有塊級作用域,比如if while for後的**塊。

按照l->e->g->b的順序進行查詢

nonlocal 僅適用於閉包函式訪問外層函式中的變數

locals() 用於檢視區域性變數。

global 用於函式中訪問全域性變數

globals() 用於檢視全域性變數

a =

999def

test()

:global a

a =6 b =

10print

(locals()

)print

(globals()

)test(

)

函式作用域

有巢狀函式的時候有return x的返回函式x的位址,沒有的則為none def f1 n1 f1 print f1中 n1 def f2 n2 f2 def f3 n3 f3 print f3中 n3 print f2中 n2 return f3 return f2 r1 f1 print r1 ...

函式作用域

匿名函式,lambda def f o if o 7 print o print list filter lambda o o 8,4,77 22,4 8 list filter f,4,77,22,4,8 列印的話會返回none 77,22 7722 8a 5deff global a 要用全域性...

函式作用域

函式作用域 呼叫函式時建立函式作用域,函式執行完畢以後,函式作用域銷毀 每呼叫一次,函式就會建立乙個新的函式作用域,它們之間是互相獨立的 在函式作用域中,可以訪問到全域性作用域的變數 在全域性作用域中無法訪問到函式作用域的變數 具體示例 當在函式作用域操作乙個變數時,它會先在自身作用域中尋找,如果有...