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使用post提交数据到远程url的方法
Apr 29 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
python对常见数据类型的遍历解析
Aug 27 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
Django 自动生成api接口文档教程
Nov 19 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
python 19个值得学习的编程技巧
Aug 15 Python
无惧面试,带你搞懂python 装饰器
Aug 17 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
Python 中random 库的详细使用
Jun 03 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生成验证码
2017/02/23 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
javascript中Function类型详解
2015/04/28 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
美国鲜花递送:UrbanStems
2021/01/04 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
建筑工地大门标语
2014/06/18 职场文书
2014年销售员工作总结
2014/12/01 职场文书
网吧管理制度范本
2015/08/05 职场文书
Python如何加载模型并查看网络
2022/07/15 Python