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中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
Python实现比较两个列表(list)范围
Jun 12 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
python绘制圆柱体的方法
Jul 02 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
python多个模块py文件的数据共享实例
Jan 11 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
python实现根据文件格式分类
Oct 31 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 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程序员工具
2008/05/26 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
PHP防止跨域提交表单
2013/11/01 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
js转html实体的方法
2016/09/27 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
详解微信UnionID作用
2019/05/15 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python根据服务获取端口号的方法
2019/09/25 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
基于python 取余问题(%)详解
2020/06/03 Python
美的官方商城:Midea
2016/09/14 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
架构师岗位职责
2013/11/18 职场文书
中学生打架检讨书
2014/10/13 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
张思德观后感
2015/06/09 职场文书
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL