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中的面向对象编程详解(上)
Apr 13 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
超简单使用Python换脸实例
Mar 27 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
python字典改变value值方法总结
Jun 21 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
Sep 21 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
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
jQuery学习笔记之总体架构
2014/06/03 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
python实现输入数字的连续加减方法
2018/06/22 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Python批量启动多线程代码实例
2020/02/18 Python
如何基于python实现不邻接植花
2020/05/01 Python
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
2014年上半年工作自我评价
2014/01/18 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
学生安全责任书范本
2014/07/24 职场文书
法人授权委托书样本
2014/09/19 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
公司职员入党自传书
2015/06/26 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
速龙x4-860k处理器相当于i几
2022/04/20 数码科技