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的主要内容,如果未能解决你的问题,请参考以下文章