Python跨文件全局变量的实现方法示例


Posted in Python onDecember 10, 2017

前言

在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如:

int a = 5; 
void test(void) 
{ 
a = 1; // 没有先声明,所以用的是全局的变量a 
} 
void test1(void) 
{ 
int a; 
a = 2; // 前面声明了,所以用的是局部变量a,对其所做的修改不会影响全局变量a 
} 
void main(void) 
{ 
printf("before: a = %d\n", a); 
test(); 
printf("after test: a = %d\n", a); 
test1(); 
printf("after test1: a = %d\n", a); 
}

在python中,变量不需要先声明,直接使用即可。

Python跨文件全局变量的实现

Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量,在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是就会报错 未定义。

借鉴global 关键字的思路,既然在一个文件里面可以生效的话,那么我们就专门为全局变量定义一个“全局变量管理模块”就好了

全局变量管理模块 globalvar.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
def _init():
 global _global_dict
 _global_dict = {}
def set_value(name, value):
 _global_dict[name] = value
def get_value(name, defValue=None):
 try:
  return _global_dict[name]
 except KeyError:
  return defValue

设置全局变量  a.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import globalvar as gl
gl._init()
gl.set_value('name', 'cc')
gl.set_value('score', 90)

获取全局变量  b.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import globalvar as gl
name = gl.get_value('name')
score = gl.get_value('score')
print("%s: %s" % (name, score))

主程序  main.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import a
import b

然后运行主程序文件   python main.py,得出的结果是  cc: 90

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python time模块用法实例详解
Sep 11 Python
Python中处理时间的几种方法小结
Apr 09 Python
Django中模版的子目录与include标签的使用方法
Jul 16 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
Python绘制正余弦函数图像的方法
Aug 28 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
浅析Python中的随机采样和概率分布
Dec 06 Python
git进行版本控制心得详谈
Dec 10 #Python
Python内置模块turtle绘图详解
Dec 09 #Python
Python程序退出方式小结
Dec 09 #Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 #Python
Python爬取附近餐馆信息代码示例
Dec 09 #Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 #Python
python登录并爬取淘宝信息代码示例
Dec 09 #Python
You might like
一个多文件上传的例子(原创)
2006/10/09 PHP
php a simple smtp class
2007/11/26 PHP
php数组查找函数总结
2014/11/18 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
php实现的递归提成方案实例
2015/11/14 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
Python 文件重命名工具代码
2009/07/26 Python
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python中adb有什么功能
2020/06/07 Python
python 常见的反爬虫策略
2020/09/27 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
建筑工程管理专业自荐信范文
2013/12/28 职场文书
烹调加工管理制度
2014/02/04 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
红色故事汇观后感
2015/06/18 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
python 中的@运算符使用
2021/05/26 Python