python跨文件使用全局变量的实现


Posted in Python onNovember 17, 2020

Python 定义了全局变量的特性,使用global 关键字修饰

global key_word

但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行。

try 1:
使用一个更宏观的思路,全局变量就用全局加载的模块解决,很遗憾也是不行,

file_1:

global a
a = "test"

file 2:

import file_1
print(a)

报错a没有定义
try 2:
file_1:

global a
a = "test"

file 2:

import file_1
print(file_1.a)
file_1.a = "aaa"
print(file_1.a)

这样可以,但是如果再有一个module 想用呢?
try 2:
file_1:

global a
a = "test"

file 2:

import file_1
print(file_1.a)
file_1.a = "aaa"
print(file_1.a)

file 2:

import file_1
import file_2
print(file_1.a)
file_1.a = "aaa"
print(file_1.a)

这样就会报错,因为import 加载就会执行一遍子module ,两个module y引用关系死锁了。

try 3:
 最终使用公共数据结构方式解决

file_1:

def init():
 global a
 a = {}
def set(arg,value):
 a[arg] = value
def get(arg)
 return a[arg]

file 2:

import file_1
print(file_1.a)
file_1.set("test",(test_value))

file 2:

import file_1
import file_2
file_1.init()

print(file_1.get("test"))

思路就是使用一个公共的字典的数据结构,在主module 中初始化,其他module都应用此module,但是不重新初始化字典。

到此这篇关于python跨文件使用全局变量的实现的文章就介绍到这了,更多相关python跨文件全局变量内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
跟老齐学Python之正规地说一句话
Sep 28 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
python获取Linux发行版名称
Aug 30 Python
Python如何实现的二分查找算法
May 27 Python
解决Keras使用GPU资源耗尽的问题
Jun 22 Python
Python实现七个基本算法的实例代码
Oct 08 Python
python语言time库和datetime库基本使用详解
Dec 25 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 Python
Python中logging日志的四个等级和使用
Nov 17 #Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 #Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 #Python
python调用百度API实现人脸识别
Nov 17 #Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
Nov 17 #Python
详解Pytorch显存动态分配规律探索
Nov 17 #Python
Python调用ffmpeg开源视频处理库,批量处理视频
Nov 16 #Python
You might like
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
Python与Java间Socket通信实例代码
2017/03/06 Python
python构建自定义回调函数详解
2017/06/20 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
简单了解django缓存方式及配置
2019/07/19 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
python数字类型math库原理解析
2020/03/02 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
动态密码技术
2012/10/18 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS