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登录Dr.com思路以及代码分享
Jun 25 Python
Python实现的下载网页源码功能示例
Jun 13 Python
Python语言描述最大连续子序列和
Dec 05 Python
Python制作词云的方法
Jan 03 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
python对excel文档去重及求和的实例
Apr 18 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
python的链表基础知识点
Sep 13 Python
python 实时调取摄像头的示例代码
Nov 25 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
php封装的验证码类分享
2017/02/26 PHP
js tab 选项卡
2009/04/26 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
python web基础之加载静态文件实例
2018/03/20 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
自我鉴定200字
2013/10/28 职场文书
法学毕业生自我鉴定
2013/11/08 职场文书
绿色出行口号
2014/06/18 职场文书
党员思想汇报材料
2014/12/19 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
Go 中的空白标识符下划线
2022/03/25 Golang