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的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
Python的多态性实例分析
Jul 07 Python
python表格存取的方法
Mar 07 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
python网络编程之多线程同时接受和发送
Sep 03 Python
Python 实现数组相减示例
Dec 27 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
通过代码实例了解Python异常本质
Sep 16 Python
如何正确理解python装饰器
Jun 15 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获取Google AJAX Search API 数据的代码
2010/03/12 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
Python迭代和迭代器详解
2016/11/10 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python的exec、eval使用分析
2017/12/11 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
大二自我鉴定范文
2013/10/05 职场文书
英语分层教学实施方案
2014/06/15 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
2014年路政工作总结
2014/12/10 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript