python 第二十四篇 全域性變數和區域性變數的作用域
阿新 • • 發佈:2018-12-11
#變數的作用域:是指一個變數所產生的作用範圍,也就是說在哪一個範圍內變數能夠被直譯器所識別。 #變數分為:全域性變數 和 區域性變數 #全域性變數:一般宣告在函式的外部。 #全域性變數的作用域:整個.py檔案內都可以使用,都可以被識別。 #區域性變數:一般宣告在函式的內部。 #區域性變數的作用域:只能在函式的內部使用,超出範圍,變數就不能再使用 #list1相當於全域性變數,作用域是整個.py檔案 list1=[] def add_test(): #a:區域性變數,只能在函式內部使用 a = 1 list1.append(a) print('區域性變數:%s'%a) print(list1) add_test() list1.append(2) print('全域性變數:%s'%(list1)) # print(a) name = '張三' def show_name(): #預設情況下,如果全域性變數和區域性變數名相同,在函式內部是無法識別到函式外部的全域性變數的。 #local variable 'name' referenced before assignment:區域性變數在宣告之前被引用(先引用後宣告的錯誤) #因為變數的引用的時候,會採取就近原則。會看最近的變數在哪,發現最近的變數是name='李四',但是提取使用了name這個變數,然後再聲明瞭name='李四'。所以出現了先引用後宣告的錯誤。 #global:將一個已經宣告好的全域性變數在函式內部重新宣告,可以避免和同名的區域性變數重名。 global name print('姓名:%s'%name) name='李四' print('姓名_1:%s'%name) show_name()