作用域 作用域分為: 全局作用域 局部作用域 在函數內部的作用域叫做局部作用域,局部作用域中的變數叫做局部變數 非函數內部的作用域叫做全局作用域,全局作用域中的變數叫做全局變數 局部作用域可以使用全局變數,全局變數不能試用局部變數 變數的使用規則: 從內向外,找到後返回 函數作用域中命名全局變數gl ...
作用域
作用域分為:
- 全局作用域
- 局部作用域
在函數內部的作用域叫做局部作用域,局部作用域中的變數叫做局部變數
非函數內部的作用域叫做全局作用域,全局作用域中的變數叫做全局變數
局部作用域可以使用全局變數,全局變數不能試用局部變數
變數的使用規則: 從內向外,找到後返回
- 函數作用域中命名全局變數global
def fn():
global 變數 # 現在改變數為全局變數
# 註意:不可以在函數中先使用一個全局變數後在用該變數命名局部變數
報錯:
a = 1
def fn():
print(a) # 全局變數
a += 1 # 這個a是局部變數
- 在函數或其他作用域中使用或修改上一層(非全局)變數nonlocal
a = 1
def fn1():
a = 2
def fn2():
a = 3 # a = 4
def fn3():
nonlocal a
a = 4
報錯:
b = 1
def fn():
nonlocal b
命名空間
命名空間: python中的所有變數都被存儲在命名空間內,每個作用域都有一個命名空間
命名空間本質就是一個字典,是用來存儲變數的字典
locals():獲得擋前作用域的命名空間