全域性變數和區域性變數

2021-09-12 09:20:10 字數 1612 閱讀 1280

********全域性變數變數名全部大寫

********區域性變數變數名全部小寫

1 #有宣告區域性變數(無global)

2 name='hhh'

3 def change_name():

4 name='ccc'

5 print('change_name',name)

6 change_name()

7 print(name)

8 9

10 執行結果:change_name ccc

11      hhh

1213 #無宣告區域性變數

14 name='hhh'

15 def change_name():

16 print('change_name',name)

17 change_name()

18 print(name)

19 執行結果:change_name hhh

20      hhh

1 name='hhh'

2 def change_name():

3 print(name)

4 name=2

5 change_name()

6 print(name)

執行結果:error 因為print(name)中需要呼叫區域性變數 但區域性變數在此時並沒有被建立
1 name=['ah','bh']

2 def xxchange():

3   name='***x'#建立區域性變數

4   global name#宣告全域性變數

5   print(name)

6 xxchange()

執行結果:error 建立區域性變數時應該在函式內部使用區域性變數 但是宣告global時 又應該使用全域性變數 所以報錯
#有global

1 name='hhh'

2 def change_name():

3 global name #這裡的name為全域性變數

4 name='ccc'#修改全域性變數為ccc

5 print(name)

6 change_name()

7 print(name)

執行結果:ccc

ccc注:如果函式的內容中無global關鍵字,優先讀取區域性變數並且能讀取全域性變數 無法給全域性變數重新賦值 name=『hhh』

但是對於可變型別(不可變型別:數字 字串 元組;列表、字典可變),可以對內部元素進行操作

如果函式中有global關鍵字,此變數本質上就是全域性變數,可讀取可修改。

1 name=['ahah','bhbh']

2 def xxname():

4 print('一二三四',name)

5 xxname()

執行結果:一二三四 ['ahah','bhbh','python']

收藏

全域性變數和區域性變數

全域性變數 可以被不同的函式 類或檔案呼叫的變數,在函式外定義。區域性變數 只能在函式內使用,定義在函式內。區域性變數的使用 class myclass def myfun num 12 print myfun num num 正確 def myfun2 num num 1 print mufun ...

全域性變數和區域性變數

區域性變數 在方法中開闢的變數,只在方法中有效 區域性變數在定義時不會初始化,要顯式的給它乙個值 如未給它乙個初始值,雖然編譯的時候會通過,但是執行的時候會產生為初始化錯誤!方法呼叫 執行完,區域性變數便會自動釋放。在方法內的語句塊中建立的變數在編譯時假如未初始,如若使用,也會報未初始化錯誤!呼叫的...

全域性變數和區域性變數

通常的認為是定義在函式外面的就稱之為全域性變數 函式體內的稱之為區域性變數 在函式中與全域性變數同名的時候 情形1 函式內部的變數名如果第一次出現,且出現在 前面,即被視為定義乙個區域性變數。num 100 定義乙個全域性變數 defdemo num 100 這裡面的實際上是定義了乙個區域性的變數 ...