num = 10
def func():
x = num + 10
print(x)
def func2():
# 報錯,因為num作為左值被認為是區域性變數了,不能在賦值之前使用
# num = num + 10
print(num)
func()
func2()
# 報錯,不存在x
# print(x)
print(num)
# 以下是輸出內容:
out:
2010
10
總結:
1. 在函式內重新定義的量如果與外部變數重名,是區域性變數
2. 在函式內僅僅使用的量如果與外部變數重名,是全域性變數
即:不能在函式內部修改全域性變數!
但是我們可以使用global關鍵字:
num = 10
def func3():
global num
print('num:', num)
num += 10
print('num:', num)
print('num:', num)
out:
num: 10
num: 20
num: 20
這樣就做到了在函式內部修改全域性變數了
3. 使用global關鍵字可以在函式內部修改全域性變數
static全域性 區域性變數,全域性變數及區域性變數
1 static變數和全域性變數都是分配在 靜態儲存區 2 static全域性變數 static區域性變數 全域性變數和區域性變數區別 他們都是分配在 靜態儲存區內,都是在程式開始的時候初始化的,他們的區別是作用域不同,static全域性變數作用域是在申明所在的檔案中,而全域性變數是全域性的,其他檔...
python區域性變數和全域性變數
name gongwei 要在函式裡修改全域性變數,需要用globle home earth china cq def change name home 地球 注意只有字串和單獨數值在區域性變數中修改全域性變數要用globle輔助,其他如列表 字典可以直接修改 global name name xu...
python 區域性變數和全域性變數
在python中全域性變數可以作用於所有域,而函式內部呼叫時會優先使用區域性變數,如果搜尋不到區域性變數就會在全域性中搜尋相同的變數 當然,以上並不意味著我們不能在函式內部使用全域性變數。python 的作用域規則是,變數的建立總是會建立乙個新的區域性變數但是變數的訪問 包括修改 在區域性作用域查詢...