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 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
python装饰器实例大详解
Oct 25 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
对python中的乘法dot和对应分量相乘multiply详解
Nov 14 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
python实现各种插值法(数值分析)
Jul 30 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
python脚本和网页有何区别
Jul 02 Python
python抢购软件/插件/脚本附完整源码
Mar 04 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 时间转换Unix时间戳代码
2010/01/22 PHP
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
快速了解python leveldb
2018/01/18 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
软件测试面试题
2015/10/21 面试题
银行金融服务方案
2014/06/11 职场文书
安全保证书怎么写
2015/02/28 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python