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实现tcp自动重连
Jul 02 Python
python正则表达式re之compile函数解析
Oct 25 Python
Python之读取TXT文件的方法小结
Apr 27 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
基于python if 判断选择结构的实例详解
May 06 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
django 单表操作实例详解
Jul 30 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
pytorch中的weight-initilzation用法
Jun 24 Python
Python中使用ipython的详细教程
Jun 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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
Python实现Linux命令xxd -i功能
2016/03/06 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
Farnell德国:电子元器件供应商
2018/07/10 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
金融学专业大学生职业生涯规划
2014/03/07 职场文书
战友聚会主持词
2014/04/02 职场文书
公司运动会策划方案
2014/05/25 职场文书
人大代表选举标语
2014/10/07 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang