全局变量就得了解一下变量作用域搜索原则LEGB:
1.L(local)局部作用域
2.E(enclosing)嵌套作用域
3.G(global)全局作用域
4.B(built-in)内置作用域
如果定定了全局变量,在本地作用域内比如在函数内部要修改,就必须用gloabl 声明一下变量
否则会报错。
接触Python时间不长,对有些知识点,掌握的不是很扎实,我个人比较崇尚不管学习什么东西,首先一定回去把基础打的非常扎实了,再往高处走。今天遇到了Python中的全局变量的相关操作,遇到了问题,所以,在这里将自己遇到的问题,做个记录,以长记心!!!
在Python中使用全局变量,其实,个人认为并不是很明智的选择;但是自己还是坚信,存在便合理,在于你怎么使用;全局变量降低了模块和函数之间的通用性;所以,在以后的编程过程中,应尽量避免使用全局变量。
全局变量的使用:
方法一:
为了便于代码管理,将全局变量统一放到一个模块中,然后在使用全局变量的时候,导入全局变量模块,通过这种方法来进行使用全局变量;
在一个模块中定义全局变量:
复制代码 代码如下:
#global.py
GLOBAL_1 = 1
GLOBAL_2 = 2
GLOBAL_3 = 'Hello World'
然后在一个模块中导入全局变量定义模块,在新模块中使用全局变量:
复制代码 代码如下:
import globalValues
def printGlobal():
print(globalValues.GLOBAL_1)
print(globalValues.GLOBAL_3)
globalValues.GLOBAL_2 += 1 # modify values
if name == '__main__':
printGlobal()
print(globalValues.GLOBAL_2)
方法二:
直接在模块中定义全局变量,然后在函数中直接使用就ok了。但是在使用全局变量的时候,必须在函数中使用global关键字进行标识:
复制代码 代码如下:
CONSTANT = 0
def modifyGlobal():
global CONSTANT
print(CONSTANT)
CONSTANT += 1
if name == '__main__':
modifyGlobal()
print(CONSTANT)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。