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实现上下班抢个顺风单脚本
Feb 07 Python
python 移除字符串尾部的数字方法
Jul 17 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
如何在Django配置文件里配置session链接
Aug 06 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
Python列表元素常见操作简单示例
Oct 25 Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
python中time.ctime()实例用法
Feb 03 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
python not运算符的实例用法
Jun 30 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
PHP自毁程序(慎用)
2015/07/09 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
js自带函数备忘 数组
2006/12/29 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
js实现无缝滚动图
2017/02/22 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
处理Python中的URLError异常的方法
2015/04/30 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
python 消费 kafka 数据教程
2019/12/21 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
EJB3推出JPA的原因
2013/10/16 面试题
中药学专业求职信
2014/05/31 职场文书
企业人事任命书
2014/06/05 职场文书
社团活动总结模板
2014/06/30 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书