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 = 100000 # 全局變量a 是定義在函數、類外面的變量
print("line 2",a,id(a))

def f():
    a = 200000 # # 全局變量 a ? 還是局部變量 a?
    print("in f() ",a,id(a))

f()

print("in f() ",a,id(a))

 

輸出結果:

line 2 100000 60503712
in f()  200000 60503728
in f()  100000 60503712

 

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

 

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

def f():
    global a
    a = 2 # # 全局變量 a ? 還是局部變量 a?
    print("in f() ",a,id(a))


f()

print("line end",a,id(a))

 

 

 

輸出結果:

line 2 1 2081907888
in f()  2 2081907904
line end 2 2081907904

 

再看一個示例:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM