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 相关文章推荐
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
python访问系统环境变量的方法
Apr 29 Python
python实现人民币大写转换
Jun 20 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python自定义一个异常类的方法
Jun 27 Python
对Django 转发和重定向的实例详解
Aug 06 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
Django实现发送邮件找回密码功能
Aug 12 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
用python制作个音乐下载器
Jan 30 Python
Django如何创作一个简单的最小程序
May 12 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 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
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
五段实用的js高级技巧
2011/12/20 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python 接口返回的json字符串实例
2018/03/27 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Django csrf 验证问题的实现
2018/10/09 Python
详解Python中is和==的区别
2019/03/21 Python
Django的models中on_delete参数详解
2019/07/16 Python
Python Django 命名空间模式的实现
2019/08/09 Python
通过python检测字符串的字母
2020/02/18 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
党员公开承诺书
2014/03/25 职场文书
公司运动会策划方案
2014/05/25 职场文书
保洁员岗位职责
2015/02/04 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL
golang内置函数len的小技巧
2021/07/25 Golang
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL