定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。
局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序內訪問。
在調用函數的時候,所有在函數內聲明的變量名稱都被加到作用域中:👇👇👇
1 total = 0 #定義了一個全局變量 2 def sum(a,b): #定義了一個sum函數 3 total = a+b #total在這里就是一個局部變量 4 print(total) 5 return total 6 sum(10,20) #調用sum函數 7 print(total)。#此時total就是一個全局變量,返回的應當就是之前定義的0
30 0
但是,當內部作用域想要修改外部作用域的變量的時候,就可以用到global和nonlocal關鍵字了 👇👇👇
total = 0 #定義了一個全局變量 def sum(a,b): #定義了一個sum函數 global total #需要使用global關鍵字 total = a+b #total在這里就是一個局部變量 print(total) return total sum(10,20) #調用sum函數 print(total) #此時total就是一個全局變量,返回的應當就是之前定義的0
30 30