#names = ['laowang', 'laozhao', 'laoliu']
student =
a = 'laowang'
b = 100
# 在函式中修改全域性變數:
# 1、如果是可變型別(列表、字典)(不可變型別是指其值不可變,改變的只是標籤指引的物件,對於沒被引用的值,python會自動**)可以執行修改變數的值;
# 2、如果全域性變數是不可變型別,如果想要在函式中修改不可變型別,其實本質上是修改不可變型別全域性變數的引用,加上global就可修改不可變型別變數的引用。
def f():
print('原始的全域性變數為:%s'%names)
names[2] = 'laoli'
student['age'] = 23
#a = 'laowu' #定義了乙個區域性變數
global a
a = 'laowu' #定義了乙個全域性變數
global b
b += 1
names = ['laowang', 'laozhao', 'laoliu'] #全域性變數定義在呼叫函式之前,不一定需要定義在函式之前
f()print('最後的全域性變數為a:%s'%names)
print('最後的全域性變數為student:%s'%student)
print('最後的全域性變數為b:%s'%b)
不可變型別:值不可以修改,可以修改變數的引用(用『=』賦值修改)
在函式中不使用global宣告全域性變數時不能修改全域性變數的本質是不能修改全域性變數的指向,既不能將全域性變數指向新的資料;
對於不可變型別的全域性變數來說,因其指向資料不能修改,所有不使用global無法修改全域性變數;
對於可變型別的全域性變數來說,因其指向的資料可以修改,所有不使用global時也可以修改全域性變數。
在函式裡修改全域性變數:
如果全域性變數是可變型別,所以在函式裡可以任意修改變數(值,引用)
如果全域性變數是不可變型別,在函式裡面不能修改值,也不能修改引用,除非加上global才能修改引用。
全域性變數可以放在**?
全域性變數定義在呼叫函式之前,不一定需要定義在函式之前
python全域性變數和區域性變數
總體來說跟c 差不多 有一點不一樣的是,當乙個全域性變數在某一函式中出現了賦值之後,函式中使用的是相同名字的區域性變數,而全域性變數不受影響 如a 100 def f a 100 print a f 這裡,函式內部的變數名如果第一次出現,且出現在 前面,即被視為定義乙個區域性變數。而函式中的a是乙個...
python全域性變數和區域性變數
當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是 區域性 的。這稱為變數的 作用域 所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。使用區域性變數 usr bin python filename func local.py de...
Python全域性變數和區域性變數
定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。如下例項 total 0 這是乙個全域性變數 可寫函式說明 def sum arg1,a...