在代碼中定義了一個全局變量,使用函數無法修改,這一點C++可以直接修改
實例1
# coding: UTF-8
Gtmp = None
def change():
Gtmp = 10
print(Gtmp)
輸出
None
實例2:
# coding: UTF-8
def func():
tmp=10
print(tmp)
報錯,找不到tmp變量
這是兩個經典問題,解決就要用到global關鍵字
lobal語句是適用於當前整個代碼塊的聲明。它是全局變量的標識符。如果某名字在局部名字空間中沒有定義, 就自動使用相應的全局名字. 沒有global是不可能手動指定一個名字是全局的.在 global 中出現的名字不能在global 之前的代碼中使用.在 global 中出現的名字不能作爲形參, 不能作爲循環的控制對象, 不能在類定義, 函數定義, import語句中出現
版權聲明:本文爲CSDN博主「白清羽」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/gufenchen/article/details/90601413
拿前兩個例子重新改造,結果如下
實例1
# coding: UTF-8
Gtmp = None
def change():
global Gtmp
Gtmp = 10
print(Gtmp)
輸出
10
實例2:
# coding: UTF-8
def func():
global tmp
tmp=10
print(tmp)
輸出:
10