Python3 變數作用域
# 變數的作用域:是指一個變數所產生作用的範圍,在哪一個範圍內能被直譯器識別。
# print(name)
# 直接輸出的話會出現這樣的一個錯誤:
# NameError: name 'name' is not defined
# 變數的作用域:全域性變數和區域性變數
# 一般宣告在函式外部的變數,被稱為全域性變數,作用範圍是整個.py檔案內,都可以使用,都能被直譯器識別到
# 一般宣告在函式內部的內部的變數,可以理解為一個區域性變數,該變數只能在函式內部使用,超出範圍,變數就不能在使用
# 預設情況下,如果全域性變數名和區域性變數名相同都是name,在函式內部是無法識別到函式外部的全域性變數的,而會在函式內部宣告一個新的區域性變數叫name
# name = '張三'
# def show( ):
# local(區域性的) variable(變數)'name' referenced(引用) before(在。。之前) assignment(宣告):因為變數在進行引用時,會採用就近原則,看最近宣告的變數在哪。而最近宣告的變數就是name = '李四', 所以出現了先引用,後宣告的錯誤
## print(name)(當把這三句程式碼執行時會出現以下錯誤)
# print ('===', name)
# show( )(當不執行##print(name)這句程式碼)
# 輸出的結果是:
# 如果在函式內部,想修改外部的全域性變數(可以理解為重新賦一個值),需要使用global
# global的作用:宣告一個變數是已經宣告好的全域性變數,直接使用即可,可以避免宣告一個和全域性變數重名的區域性變數
# global name
# name = '王五'
# print('===', name)
# show( )
# 輸出的結果是: