分享、記錄兩個有意思的案例,平時碰到時總容易誤理解。
猜猜這個表示式,它的返回值是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.在區域性作用域中引用外部變數時 即比當前區域性作用域塊更大時 如果需要修...