python中的局部變量和全局變量

 

定義在函數內部的變量擁有一個局部做用域,定義在函數外的擁有全局做用域函數

只要是*使用*變量,而該變量在全局域中有定義,而在局部沒有定義,則會使用全局變量。code

num = 100
def func():
    x = num + 100
    print(x)

func()
輸出:

 

200

若是使用的變量在全局域中有定義,在局部域中也有定義,則默認會使用局部變量。作用域

num = 100
def func():
    num = 200
    x = num + 100
    print(x)

func()
結果:

 

300

若是要在函數中給全局變量賦值,須要用global關鍵字聲明。變量

num = 100
def func():
    global num
    num = 200
    num += 100
    print(num)

func()
print(num)
輸出:

 

300

300

若是使用局部變量,咱們要先聲明,不然會報錯。co

num = 100
def func():
    num += 100
    print(num)

func()
print(num)
輸出:

UnboundLocalError: local variable 'num' referenced before assignment

使用全局變量ab

num = 100
def func():
    global num
    num += 100
    print(num)

func()
print(num)
輸出:

200
200

使用局部變量

num = 100
def func():
    num = 1
    num += 100
    print(num)

func()
print(num)
輸出:

101
100
相關文章
相關標籤/搜索