1. 程式人生 > >Python千萬要注意的全域性變數和區域性變數問題

Python千萬要注意的全域性變數和區域性變數問題

1、直接在函式中呼叫全域性變數

m = 100
def fun():
    print("m1:",m)
fun()
print("m2:", m)

 輸出:

2、函式體內呼叫與全域性變數同名的區域性變數

m = 100
def fun():
    m = 50
    print("m1:",m)
fun()
print("m2:", m)

輸出:

解釋:在函式體內,定義了一個區域性變數,這個區域性變數覆蓋住了全域性變數。

3、一種經典報錯

m = 100
def fun():
    print("m0:",m)
    m = 50
    print("m1:",m)
fun()
print("m2:", m)

輸出:

解釋:因為在函式體內定義了這個區域性變數,但是定義卻在呼叫之後,所以報錯!

4、針對問題3的修改方法

m = 100
def fun():
    global m
    print("m0:", m)
    m = 50
    print("m1:",m)
fun()
print("m2:", m)

輸出: