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 相关文章推荐
python中使用enumerate函数遍历元素实例
Jun 16 Python
跟老齐学Python之坑爹的字符编码
Sep 28 Python
python optparse模块使用实例
Apr 09 Python
Python实现的桶排序算法示例
Nov 29 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
python在html中插入简单的代码并加上时间戳的方法
Oct 16 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
python递归法实现简易连连看小游戏
Mar 25 Python
Python numpy数组转置与轴变换
Nov 15 Python
Python类和实例的属性机制原理详解
Mar 21 Python
Python 文本滚动播放器的实现代码
Apr 25 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实现文件安全下载
2006/10/09 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
Python中变量交换的例子
2014/08/25 Python
Python合并字符串的3种方法
2015/05/21 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
Django的分页器实例(paginator)
2017/12/01 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
python批量修改ssh密码的实现
2019/08/08 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
店长职务说明书
2014/02/04 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书