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

 

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