python的全域性與區域性變數

2021-08-18 05:59:13 字數 652 閱讀 5115

python中有時候需要設定區域性變數以防止資料被修改。

一般在函式中直接使用而沒有加global的都是區域性變數。

比如

#coding:utf8

x=10 #全域性變數

if x>5:

x=20

print(x) #從結果可以看到,if可以修改全域性變數的值

def change(x):

if x>5:

x=30

print(x) #結果是30,區域性變數

change(x)

print(x) #結果是20,列印的是全域性變數

如圖,在if中是可以直接修改全域性變數的值。而如果是在函式中對同名變數進行賦值是不能修改全域性變數的值的。在函式中,所使用的並不是全域性變數,而是乙個跟全域性變數同名的區域性變數。

這裡需要注意的就是if for while這些條件迴圈語句不會產生新的作用域,而函式裡面的變數如果不使用global進行宣告就會產生新的作用域(即只能在函式內部使用)。

如果在函式內部對變數使用 global 變數名,那麼在函式內就可以修改全域性變數的值了。

def change():

global x

x=4

注意不能直接寫成global x=4。。。。不然報錯。

Python 區域性變數與全域性變數

問題由來 考慮到想在執行結束後的使用者空間裡面檢視一下資料,我把data1作為全域性變數來進行處理。data1 function a1 data1 readdata function a2 data1.dealdata if name main a1 a2 此時,a2 函式沒有任何輸出,即data1...

python 全域性變數與區域性變數

目錄 一 變數作用域 二 全域性變數 區域性變數 2.1 global 和nonlocal關鍵字 python中,變數不是在 都可以訪問的,訪問許可權決定於變數是在 被賦值的。變數作用域決定了哪一部分程式可以訪問哪些特定的變數。python的作用域一共分為四種 程式查詢變數的規則為 l e g b ...

python區域性變數與全域性變數

區域性變數 區域性變數是在函式內部進行使用,無法全域性共享 全域性變數 全域性變數在函式外部進行共享使用,可以接收函式的呼叫 區域性變數 def demo1 num 1print num defdemo2 print num print會報錯,原因顯示為沒有定義num這個變數,所以證明在demo1中...