1. 程式人生 > >Python基礎7 函式 global和nonlocal 關鍵字 名稱空間和作用域的關係

Python基礎7 函式 global和nonlocal 關鍵字 名稱空間和作用域的關係

global和nonlocal 關鍵字

1  global關鍵字可以將區域性變數變成一個全域性變數

格式 : global 變數名稱

a = 10 
print(id(a))
def func()
    global a     #變成了全域性變數
    a = 20       #修改全域性變數的值
    print(id(a)) #id 相同
    print(a)
func()
prinr(a)

nonlocal 關鍵字可以修改外層(全域性變數)變數

def outter():
    name = 'zs'
    def inner():
        nonlocal name    #和outter中的name是同一個變數
        name = '趙四'
    inner
    print(name)             #趙四
outter()
print(name)                #趙四

名稱空間和作用域的關係


名稱空間定義了在某一個作用域內,變數名和繫結值之間的對應關係,名稱空間是鍵值對的集合,變數名與值一一對應。
作用域定義了名稱空間中的變數能夠在多大範圍內起作用