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

 

posted @ 2022-01-23 09:33  emanlee  阅读(4572)  评论(0编辑  收藏  举报