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中的for 循环
Jun 09 Python
python制作websocket服务器实例分享
Nov 20 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
Python GUI编程完整示例
Apr 04 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
让你的Python代码实现类型提示功能
Nov 19 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 Python
python基础之while循环语句的使用
Apr 20 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 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
MySQL相关说明
2007/01/15 PHP
PHP 身份证号验证函数
2009/05/07 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
PHP实现懒加载的方法
2015/03/07 PHP
php表单处理操作
2017/11/16 PHP
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python网络编程之数据传输UDP实例分析
2015/05/20 Python
使用Python生成XML的方法实例
2017/03/21 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
python绘制圆柱体的方法
2018/07/02 Python
python opencv实现证件照换底功能
2019/08/19 Python
numpy 声明空数组详解
2019/12/05 Python
python怎么判断素数
2020/07/01 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
人事部主管岗位职责
2013/12/26 职场文书
会计工作心得体会
2014/01/13 职场文书
协议书怎么写
2014/04/21 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
发布会邀请函
2015/01/31 职场文书
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers