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 提取文件的小程序
Jul 29 Python
python3编码问题汇总
Sep 06 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
详解Django定时任务模块设计与实践
Jul 24 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
简单了解python中的与或非运算
Sep 18 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
Python加载数据的5种不同方式(收藏)
Nov 13 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
Python冲顶大会 快来答题!
2018/01/17 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
用python发送微信消息
2020/12/21 Python
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
见习报告的格式
2014/10/31 职场文书
辩护意见书
2015/06/04 职场文书
监护人证明
2015/06/19 职场文书
入党自传范文2015
2015/06/26 职场文书
2016年国陪研修感言
2015/11/18 职场文书
队列队形口号
2015/12/25 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis