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的Django框架中获取单个对象数据的简单方法
Jul 17 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
Python利用operator模块实现对象的多级排序详解
May 09 Python
Python文件操作之合并文本文件内容示例代码
Sep 19 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
python实现批量修改图片格式和尺寸
Jun 07 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
Python3字符串encode与decode的讲解
Apr 02 Python
PyQt5根据控件Id获取控件对象的方法
Jun 25 Python
选择Python写网络爬虫的优势和理由
Jul 07 Python
Django模板获取field的verbose_name实例
May 19 Python
Flask response响应的具体使用
Jul 15 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 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php查询操作实现投票功能
2016/05/09 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
button没写type=button会导致点击时提交
2014/03/06 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
Python如何使用函数做字典的值
2019/11/30 Python
python绘制趋势图的示例
2020/09/17 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
python中remove函数的踩坑记录
2021/01/04 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
三好学生自我鉴定
2013/12/17 职场文书
最新个人职业生涯规划书
2014/01/22 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript