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 使用get_argument获取url query参数
Apr 28 Python
python删除服务器文件代码示例
Feb 09 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
python3 使用traceback定位异常实例
Mar 09 Python
详解python程序中的多任务
Sep 16 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 Python
Python离线安装各种库及pip的方法
Nov 28 Python
python 基于UDP协议套接字通信的实现
Jan 22 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
php 获取远程网页内容的函数
2009/09/08 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
10个实用的PHP代码片段
2011/09/02 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
Python完全新手教程
2007/02/08 Python
python连接sql server乱码的解决方法
2013/01/28 Python
python重试装饰器示例
2014/02/11 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
python logging日志模块原理及操作解析
2019/10/12 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
Python绘制动态水球图过程详解
2020/06/03 Python
飞利浦法国官网:Philips法国
2019/07/10 全球购物
美国一站式电动和手动工具商店:International Tool
2020/11/26 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
食堂个人先进事迹
2014/01/22 职场文书
中学生操行评语
2014/04/24 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
java开发双人五子棋游戏
2022/05/06 Java/Android