函式作用域

2022-08-16 09:03:10 字數 636 閱讀 4007

作用域由大到小分為:

built_in-------global------enclosing------locals

count=10

def add():

print(count)就認為count=10,如果要修改則函式會報錯

如果一定要這樣修改,可以給count乙個定義:

count=10

def add():

global count

print(count)

count=4

print(count)

add()

小結1,變數查詢順序legb,作用區域性域》作用域外層》當前模組中的全域性》python內建的作用域

2,只有模組,類,以及函式才會有作用域

3,對於乙個變數,內部作用域先宣告就會覆蓋外部變數,不宣告就會直接使用

4,內部作用域要修改外部作用於變數的值時,全域性變數要使用關鍵字global,

巢狀作用域要使用nonlocal關鍵字,nonlocal時python3新增的關鍵字,有了這個關鍵字,就能完美的實現閉包了

count=4#這樣會報錯,因為在global域中count=10,當在函式呼叫

# 了count=10,函式內部enlosing域

函式作用域

有巢狀函式的時候有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 要用全域性...

函式作用域

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