python通过配置文件共享全局变量的实例


Posted in Python onJanuary 11, 2019

在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况,此时通过配置文件定义全局变量是一个比较好的选择。

首先配置config.py模块,config需要设置get_xxx和set_xxx的方法提供对外的接口。

config.py

class global_var:
  '''需要定义全局变量的放在这里,最好定义一个初始值'''
  name = 'my_name'

# 对于每个全局变量,都需要定义get_value和set_value接口
def set_name(name):
  global_var.name = name
def get_name():
  return global_var.name

然后在其他模块引用:

test.py

import config
# 引用全局变量
name = config.get_name()
# 修改全局变量
config.set_name('new_name')
# 查看修改后的全局变量
print(config.get_name())

注意:

1. import配置文件时,不要from xxx import *, 而要import config.py

2. 在config.py文件中,用set_xxxValue()和get_xxxValue来提供外部访问接口,这个好处是,可以让全局变量在每次调用的时候都能得到刷新

3. 其他文件使用get_xxxValue()获取到全局变量的最新值

另外,对于global这个声明,他只是在同一个文件中有效,并不能跨文件,就是夸module.所以不要妄想通过global来控制不同文件间的共享变量。

以上这篇python通过配置文件共享全局变量的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 简易计算器程序,代码就几行
Aug 29 Python
使用python开发vim插件及心得分享
Nov 04 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
使用Python的turtle模块画图的方法
Nov 15 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
Jun 05 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
使用python制作一个解压缩软件
Nov 13 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
python爬虫请求库httpx和parsel解析库的使用测评
May 10 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 #Python
Python设计模式之职责链模式原理与用法实例分析
Jan 11 #Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 #Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 #Python
Python实现批量执行同目录下的py文件方法
Jan 11 #Python
python多个模块py文件的数据共享实例
Jan 11 #Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 #Python
You might like
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
js document.write()使用介绍
2014/02/21 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
Python 迭代器与生成器实例详解
2017/05/18 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
详解python中的线程与线程池
2019/05/10 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
宝信软件JAVA工程师面试经历
2012/08/19 面试题
会计专业自荐信范文
2013/12/02 职场文书
高中运动会广播稿
2014/01/21 职场文书
《燕子》教学反思
2014/02/18 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2014年物流工作总结
2014/11/25 职场文书
2014年变电站工作总结
2014/12/19 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL