python中的全局变量用法分析


Posted in Python onJune 09, 2015

本文实例分析了python中的全局变量用法。分享给大家供大家参考。具体分析如下:

Python是一种面向对象的开发语言,在函数中使用全局变量,一般应作全局变量说明,只有在函数内经过说明的全局变量才能使用,这里就来介绍下Python全局变量有关问题。

首先应该说明的是需要尽量避免使用Python全局变量。不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可预知性。对全局变量,如果程序员甲修改了_a的值,这时可能导致程序中的错误。这种错误是很难发现和更正的。

全局变量降低了函数或模块之间的通用性,不同的函数或模块都要依赖于全局变量。同样,全局变量降低了代码的可读性,阅读者可能并不知道调用的某个变量是全局变量。 但是某些时候,Python全局变量能够解决局部变量所难以解决的问题。事物要一分为二。 python里面全局变量有两种灵活的用法:

gl.py:

gl_1 = 'hello'
gl_2 = 'world'

在其它模块中使用

a.py:

import gl 
def hello_world() 
  print gl.gl_1, gl.gl_2

b.py:

import gl 
def fun1() 
  gl.gl_1 = 'Hello'
  gl.gl_2 = 'World'
def modifyConstant() : 
    global CONSTANT 
    print CONSTANT 
    CONSTANT += 1 
    return 
if __name__ == '__main__' : 
    modifyConstant() 
    print CONSTANT

1 声明法

在文件开头声明Python全局变量variable, 在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部变量。 CONSTANT = 0  (将全局变量大写便于识别)

2模块法(推荐)

推荐!

gl.py:

gl_1 = 'hello'
gl_2 = 'world'

在其它模块中使用

a.py:

import gl 
def hello_world() 
  print gl.gl_1, gl.gl_2

b.py:

import gl 
def fun1() 
  gl.gl_1 = 'Hello'
  gl.gl_2 = 'World'
def modifyConstant() : 
    global CONSTANT 
    print CONSTANT 
    CONSTANT += 1 
    return 
if __name__ == '__main__' : 
    modifyConstant() 
    print CONSTANT

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python控制台中实现进度条功能
Nov 10 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
浅谈Python中range和xrange的区别
Dec 20 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
python训练数据时打乱训练数据与标签的两种方法小结
Nov 08 Python
Python 调用 Windows API COM 新法
Aug 22 Python
python 数据提取及拆分的实现代码
Aug 26 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
python简单实现计算过期时间的方法
Jun 09 #Python
Python扫描IP段查看指定端口是否开放的方法
Jun 09 #Python
Python实现数据库编程方法详解
Jun 09 #Python
Python读写文件方法总结
Jun 09 #Python
六个窍门助你提高Python运行效率
Jun 09 #Python
python数组复制拷贝的实现方法
Jun 09 #Python
Python函数返回值实例分析
Jun 08 #Python
You might like
PHP可逆加密/解密函数分享
2012/09/25 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP中文乱码解决方案
2015/03/05 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
Python随机生成彩票号码的方法
2015/03/05 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
早餐连锁店计划书
2014/01/08 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2014小学年度工作总结
2014/12/20 职场文书
个人廉洁自律总结
2015/03/06 职场文书
寻找成龙观后感
2015/06/12 职场文书
SpringBoot Http远程调用的方法
2022/08/14 Java/Android