L9 Python內部變數的作用域問題

2021-09-29 13:24:12 字數 729 閱讀 9120

分享、記錄兩個有意思的案例,平時碰到時總容易誤理解。

猜猜這個表示式,它的返回值是true 還是false?

print

(true

==false

==false

)# ?

1、 對外部變數不進行運算,直接訪問

函式內部,不對外部變數進行運算時,可以直接訪問

x =

12deff1(

):# 在這裡執行時, x會被當做內部變數

x =3print

(x)f1(

)# 輸出:3

2、 直接對外部變數進行操作運算

函式內部,對外部變數作操作運算時,訪問會報錯

y =

12deff2(

):y +=

1print

(y)f2(

)#錯誤資訊:unboundlocalerror: local variable 'x' referenced before assignment

3、新增global宣告,再操作

函式內部新增global宣告後,可以對全域性變數進行運算

z =

12deff3(

):global z

z +=

1print

(z)f3(

)# 13

Python變數的作用域

python程式有各種各樣的命名空間,它指的是在該程式段內乙個特定的名稱是獨一無二的,它和其它同名的命名空間是無關的。在python中每乙個函式都有自己的命名空間,如果在函式體外部,也就是主程式範圍內定義乙個變數a,然後在函式體內也定義乙個變數a,那麼兩者指帶的是不同的變數。但是要知道的是場景總是多...

python 變數的作用域

變數的作用域 1.區域性作用域 local 每次呼叫函式時都會建立乙個區域性作用域。區域性作用域 函式 中定義的變數稱之為區域性變數。區域性變數的作用域為 從定義變數處開始到函式結束。函式呼叫結束後,其對應的區域性作用域中的所有變數都會被銷毀。2.巢狀作用域 enclosing 每次呼叫巢狀函式中的...

Python 變數的作用域

1.在程式語言中,變數都有一定的作用域,用來限定其生命週期,且不同型別的變數作用域不同。在python中直譯器引用變數的順序 優先順序 為 當前作用域區域性變數 外層作用域變數 當前模組中的全域性變數 python內建變數 2.在區域性作用域中引用外部變數時 即比當前區域性作用域塊更大時 如果需要修...