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使用requests发闪存的方法
May 11 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
python双向链表原理与实现方法详解
Dec 03 Python
python 实现字符串下标的输出功能
Feb 13 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
python怎么判断素数
Jul 01 Python
Python DES加密实现原理及实例解析
Jul 17 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
PHP 类型转换函数intval
2009/06/20 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
基于jquery的表格排序
2010/09/11 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
Python绘制3D图形
2018/05/03 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
python 实现二维列表转置
2019/12/02 Python
python 画条形图(柱状图)实例
2020/04/24 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
父亲生日宴会答谢词
2014/01/10 职场文书
工程材料采购方案
2014/05/18 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
办公室主任个人总结
2015/02/28 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
Oracle表空间与权限的深入讲解
2021/11/17 Oracle
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL