在python中,在函式外面賦值的變數,被稱為全域性變數。
# 定義兩個全域性變數
name = "cat"
game = ["lol"]
# 修改全域性變數的資料:全域性變數是字串
def text_str():
'''修改字串的資料'''
# 修改全域性變數的資料
name = "mouse"
print("name:", name)
text_str()
# 檢視函式執行後的全域性變數
print("name:", name)
結果:name: mouse
cat
在此案例中可以看到雖然函式中已經對全域性變數name進行了修改,但是通過兩個輸出結果可以發現,在函式內部的輸出結果為修改後的結果,而在函式執行完畢後的結果顯示,全域性變數name的值並沒有被修改。
def test_str():
'''修改字串資料'''
# 如果要修改全域性變數的資料:宣告可以修改
global name
# 修改全域性變數的資料
name= 'mouse'
print("name:", name)
# 檢視全域性變數的資料
print(name)
test_str()
print(name)
結果:cat
name: mouse
mouse
在上述**中我們新增乙個global關鍵字,使得全域性變數name的值在函式執行後發生了改變。(global關鍵字的作用是在函式中對乙個全域性變數進行宣告操作,宣告乙個全域性變數在此函式中是可以進行修改的)
通過上面兩個案例得知在普通函式中,可以訪問全域性變數的資料,但是一般不允許直接修改,可以通過global關鍵字引入之後進行修改。
# 修改全域性變數的資料:變數是乙個列表
def test():
'''修改列表中的資料'''
# 修改list資料
print("全域性變數的資料game:", game)
print("函式執行前普通**中全域性變數game:", game)
test()
print("函式執行後普通**中全域性變數game:", game)
結果:函式執行前普通**中全域性變數game: ["lol"]
全域性變數的資料game: ["lol", "pubg"]
函式執行後普通**中全域性變數game: ["lol", "pubg"]
在上述**中可以發現,當全域性變數是乙個列表是,在函式中可以直接對列表中的內容進行修改。這是因為在此**中只是對列表裡面的值進行了修改,列表還是那個列表,列表的本身並沒有被修改。 Python中的全域性變數操作
接觸python時間不長,對有些知識點,掌握的不是很紮實,我個人比較崇尚不管學習什麼東西,首先一定回去把基礎打的非常紮實了,再往高處走。今天遇到了python中的全域性變數的相關操作,遇到了問題,所以,在這裡將自己遇到的問題,做個記錄,以長記心!在python中使用全域性變數,其實,個人認為並不是很...
函式中「引用」全域性變數和「修改」全域性變數的差別
以下程式中,函式中可以直接列印出全域性變數x,而無須使用關鍵字global html view plain copy print?x 1 def run print x if name main run 當在函式中需要修改全域性變數時,如果沒有global關鍵字則會出錯 python view pl...
Python函式操作外部(全域性)變數
在python的哲學裡,函式不強制要有返回值,對於沒有reutrn的函式直譯器會自作主張返回乙個none 因此,可以用函式實現過程封裝。函式內部變數都是區域性的,相當於namespace限定在這個函式裡,無法影響全域性,例如 def init x 0 init x traceback most re...