Python 全局變量 global

Python 全局變量

 

局部變量就是定義在一個函數體內部的變量
全局變量是定義在外面的變量

 

a = 1 # 全局變量是定義在函數、類外面的變量
def f():
    b = 2 # 局部變量

print(a) # 全局變量

 

引用全局變量

a = 1 # 全局變量a 是定義在函數、類外面的變量
print("line 2",id(a))
def f():
    b = a # # 全局變量 a
    print("in f() ",id(a))

f()

 

輸出結果:

line 2 140719972816656
in f()  140719972816656

 

修改全局變量的值

下面的代碼,在f()中修改a,此時a爲新的同名變量,是一個局部變量

a = 1 # 全局變量a 是定義在函數、類外面的變量
print("line 2",id(a))
def f():
    a = 2 # # 全局變量 a ? 還是局部變量 a?
    print("in f() ",id(a))

f()

輸出結果:

line 2 140719972816656
in f()  140719972816688

 

如果想在函數裏面對全局變量進行修改,可以加關鍵詞 global

a = 1 # 全局變量a 是定義在函數、類外面的變量
print("line 2",id(a))
def f():
    global a
    a = 2 # # 全局變量 a ? 還是局部變量 a?
    print("in f() ",id(a))

f()

輸出結果:

line 2 140719972816656
in f()  140719972816688

 

再看一個示例:

a = 1 # 全局變量a 是定義在函數、類外面的變量
print("line 2",id(a))
def f():
    global a
    a = 2 # # 全局變量 a ? 還是局部變量 a?
    print("in f() ",id(a))
    print(a)
f()
print("line 2",id(a))
print(a)

輸出結果:

line 2 140719966328592
in f()  140719966328624
2
line 2 140719966328624
2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章