python27變數作用域的疑問

2021-03-05 09:21:07 字數 857 閱讀 4869

1樓:匿名使用者

在函式中定義和修改全域性變數,需要使用global關鍵字。但訪問全域性變數(不修改它的值),可以省略global關鍵字。python這樣設計的意義在於,防止python程式設計師不小心修改了全域性變數。

使用global關鍵字後,程式設計師很清楚自己正在做什麼。

在例三中,b()函式並沒有修改全域性變數u。u是乙個物件的引用,有唯一的物件id。在修改了變數的引用,導致變數id改變是,才算是「修改了物件」。例如:

u = {}

def foo():

global u

u = 1

return u

print foo()

這是全域性變數u被修改,因為它由乙個字典變成了乙個int物件,它的值發生了變化。

望採納,謝謝支援!

2樓:匿名使用者

首先:關鍵字global宣告乙個變數屬於全域性命名空間,一般在需要修改全域性變數時使用,比如:

a=1def f():

global a

a+=1

問題1:例子2在函式b內部操作全域性變數,需要新增global語句,宣告u是全域性變數

問題2:可能是閉包,不太確定

python中lambda對於變數作用域的問題 50

3樓:匿名使用者

從使用的地方往外查詢。所以才有區域性變數覆蓋全域性變數的現象。

python 函式作用域問題,

4樓:三城補橋

類在定義的時候是有作用域的,這個作用域內的變數只能在 class 塊內訪問,而不能在類的方法(函式)中訪問。

python如何判斷變數是列表

動態語言一般用的bai都是鴨子型別,最du好不要去zhi判斷,或者限制一dao個變數的具體型別,只要這個 專變數能完成你的屬目標就可以了。python內建的方法是isinstance isinstance dict true isinstance 5,dict false isinstance di...

有關python全域性變數和區域性變數的問題

問題不在這個pro request上,你前面的 估計有修改 process的行為。除了為列表直接賦值引用的外 修改新列表是不會改變源列表的內容的。python區域性變數和全域性變數問題 global語句宣告後,指定的變數被認為是函式外的。後面的所有操作都是在操作函式外的那個變數,雖然你是在函式內操作...

python中什麼是變數變數命的命名,應遵循哪些規則

娛樂小八卦啊 變數命名注意事項 1 變數名的長度不受限制,但其中的字元必須是字母 數字 或者下劃線 而不能使用空格 連字元 標點符號 引號或其他字元。2 變數名的第一個字元不能是數字,必須是字母或下劃線。3 python區分大小寫。4 不能將python關鍵字用作變數名。擴充套件資料 python ...