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实现从字符串中找出字符1的位置以及个数的方法
Aug 25 Python
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
Python中的下划线详解
Jun 24 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
Python中的引用知识点总结
May 20 Python
Python logging日志库空间不足问题解决
Sep 14 Python
教你如何使用Python下载B站视频的详细教程
Apr 29 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 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+DBM的同学录程序(3)
2006/10/09 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python实现数据写入excel表格
2018/03/25 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
四年的个人工作自我评价
2013/12/10 职场文书
生产操作工岗位职责
2014/09/16 职场文书
单位委托书怎么写
2014/09/21 职场文书
民间个人借款协议书
2014/09/30 职场文书
总结会主持词
2015/07/02 职场文书
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技