1. 程式人生 > 其它 >python 全域性變數_python全域性變數的用法詳解

python 全域性變數_python全域性變數的用法詳解

技術標籤:python 全域性變數python全域性變數python全域性變數和區域性變數python全域性變數的宣告和使用python定義全域性變數vs檢視全域性變數實時執行值

c9424ec135809ccbd0752f4ab468c9ea.png

一段時間沒有使用python來寫程式碼,就發現以前學習的很多語法都忘了。看來還是當初這方面的專案做的好不夠多,沒有系統性的運用和學習,導致了很多語法不能順手拈來。在接下來的這個專案中,

一定要把遇到的一些python知識不熟悉的地方還有遺忘的重新梳理一下,對python要達到靈活運用的境界,不能單純是能敲程式碼,要達到學,做,教的三者合一。就是在做中學,學中做,做中教,教中學的

境界。

全域性變數的作用域

  一般在函式體外定義的變數成為全域性變數,在函式內部定義的變數稱為區域性變數。全域性變數所有作用域都可用,區域性變數只能在本函式可用,變數的使用順序是,區域性變數 > 全域性變數, 也就是說:優先使用區域性變數

global關鍵字:

為了解決函式內使用全域性變數的問題,python增加了global關鍵字, 利用它的特性, 可以指定變數的作用域。

global關鍵字的作用:宣告變數var是全域性的

例項一:函式內賦值不能改變全域性變數值:

globalval
val=10

deftest1():
globalval
val=5
print('test1globalval:',val)

deftest2():
val=8
print('test2globalval:',val)
classTest():
def__init__(self):
#globalval
val=5
#zoo()
#xy()
defconnect(self):
print("classinconnectglobalval:",val)
if5==val:
print("globalvalis:",val)

if__name__=="__main__":
Test().connect()

執行結果:

classinconnectglobalval:10

可以看出,函式內賦值並不能改變全域性變數的值,所以需要global關鍵字

例項二:全域性變數值改變必須要有global關鍵字:

#Python學習交流QQ群:579817333
globalval
val=10

deftest1():
globalval
val=5
print('test1globalval:',val)

deftest2():
val=8
print('test2globalval:',val)
classTest():
def__init__(self):
#globalval
val=5
test1()
test2()
defconnect(self):
print("classinconnectglobalval:",val)
if5==val:
print("globalvalis:",val)

if__name__=="__main__":
Test().connect()

測試結果:

test1globalval:5
test2globalval:8
classinconnectglobalval:5
globalvalis:5

可以看出,全域性變數的值改變,必須要有global關鍵字。不然就被當成了局部變數。這點一定要記好。