python global變量做用域

python變量做用域

var1 = 123

def func(): var1 = 456
      print(var1) func() #456
print(var1)    #123


==================================================
var1 = 123 def func(): global var1 #變成了教室的黑板(信息透明共享) var1 = 456 print(var1) func() #456 print(var1) #456


 

global var1 #代表此處沒有起到全局變量的做用 def func(): var1 = 456
      print(var1) func() #456
print(var1)    #NameError: name 'var1' is not defined
global var1 #代表此處沒有起到全局變量的做用 var1 = 123

def func(): var1 = 456
    print(var1) return var1 func() #456 print(var1)     #123

 

var1 = 123    #這一行的全局變量也能夠註釋掉,不影響下面的代碼

def func1(): global var1  #變成了教室的黑板(信息透明共享)
      var1 = 456
      print(var1) func1() #456
print(var1)   #456


def func2(): print(var1) func2() #456


def func3(): var1 = 333
    print(var1) func3() #333
print(var1)   #456


def func4(): global var1  #再次變成了教室的黑板(信息透明共享)
    print(var1)    #456
    var1 = 444
    print(var1)    #444
func4() print(var1)   #444

總結:python

1,global必須放在函數內,若是放在函數外將不起做用(如上面的紅色字體)。函數

2,某個函數若是想改變外部變量的值,就必須在函數內部的該變量前加global,若是有兩個函數func1,func2都想改變外部變量var1的值,就必須在func1,func2裏面的var1前加上global。字體

3,若是func2想獲取func1裏面的var1的最新值,就必須在func1,func2裏面的var1前加上global。spa

相關文章
相關標籤/搜索