變量做用域:
通常在函數體外定義的變量成爲全局變量,在函數內部定義的變量稱爲局部變量。
全局變量全部做用域均可讀,局部變量只能在本函數可讀
函數在讀取變量時,優先讀取函數自己自有的局部變量,再去讀全局變量app
全局變量
讀,都可讀
賦值,global
字典,列表可修改
全局變量全大寫函數
例:spa
name = 'Tim' #全局變量 def f1(): age = 18 #局部變量 print(age,name) def f2(): age=19 #局部變量 print(age,name) f1() f2() >>> 18 Tim 19 Tim
在函數內部也能夠定義全局變量:code
name = 'Tim' #全局變量 def f1(): age = 18 #局部變量 global name #定義全局變量 name = 'Eric' print(age,name) f1() print(name)
全局變量默承認讀,若是須要改變全局變量的值,須要在函數內部使用global定義blog
特殊:列表,字典,可修改,但不能從新賦值,若是須要從新賦值,須要在函數內部使用global定義全局變量作用域
NAME = ['Tim','mike'] #全局變量 NAME1 = ['Eric','Jeson'] #全局變量 NAME3 = ['Tom','jane'] #全局變量 def f1(): NAME.append('Eric') #列表的append方法可改變外部全局變量的值 print('函數內NAME: %s'%NAME) NAME1 = '123' #從新賦值不可改變外部全局變量的值 print('函數內NAME1: %s'%NAME1) global NAME3 #若是須要從新給列表賦值,須要使用global定義全局變量 NAME3 = '123' print('函數內NAME3: %s'%NAME3) f1() print('函數外NAME: %s'%NAME) print('函數外NAME1: %s'%NAME1) print('函數外NAME3: %s'%NAME3) >>> 函數內NAME: ['Tim', 'mike', 'Eric'] 函數內NAME1: 123 函數內NAME3: 123 函數外NAME: ['Tim', 'mike', 'Eric'] 函數外NAME1: ['Eric', 'Jeson'] 函數外NAME3: 123