Python 全局变量 global

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Python 全局变量 global的主要内容,如果未能解决你的问题,请参考以下文章

Python 全局变量 global

python global提升全局变量

python3.6.2 全局变量global

Python中的全局变量与global

python global怎么用

python 局部变量和全局变量 global