Python设置跨文件的全局变量
先说明,此篇只是整理前人的方法
网上一搜索,排名前几的大都是一个方法,大同小异,连出现的问题都一样,让人联想.....
但直接使用时要么有问题,要么写的不适合新手学习
我总结了一下:
1.建立一个名字为gol.py 的文件,将以下代码放入并保存:
# -*- coding: utf-8 -*-def _init(): # 初始化global _global_dict_global_dict = {}def set_value(key, value):# 定义一个全局变量_global_dict[key] = valuedef get_value(key):# 获得一个全局变量,不存在则提示读取对应变量失败try:return _global_dict[key]except:print('读取' + key + '失败\r\n')
2.在每个使用跨文件全局变量的py文件里,都导入上面的 gol 模块
import gol
3.在自己主程序模块里,先 初始化gol模块一次 :gol._init()
注意:只需初始化一次,再次初始化会将已配置的全局变量清空
# 初始化gol模块,只需要在主程序模块初始一次
gol._init()
之后就简单了,不同的py文件中:
# 新建或者重置跨文件全局变量:gol.set_value(变量名, 变量值)
gol.set_value('name', '帅哥')# 获得某个跨文件全局变量的值: gol.get_value(变量名)
name = gol.get_value('name')
下面是例子:
在已有gol.py文件的基础上
新建 test1.py,代码:
import gol
import test2# 初始化gol模块,只在主程序模块使用一次
# 不可重复初始化使用,会清空已配置的全局变量
gol._init()# 新建或者重置跨文件全局变量:gol.set_value(变量名, 变量值)
gol.set_value('name', '帅哥')
name = gol.get_value('name')# 可以看到现在打印的是:’帅哥‘
print(f'1.在 test1 中打印新创建的变量 name:{name}')test2.aaa()# 获得某个跨文件全局变量的值: gol.get_value(变量名)
name = gol.get_value('name')# 经过test2.aaa的修改,变量'name'已经变为'美女'
print(f'3.在 test1 中打印在 test2.aaa 修改的全局变量 name:{name}')# 获得了在 test2.aaa 里的变量
age=gol.get_value('age')print(f'4.在 test1 中打印在 test2.aaa 创建的全局变量 age:{age}')
新建test2.py,代码:
import goldef aaa():# 获得变量'name'的值name = gol.get_value('name')# 此时打印的是:帅哥print(f'2.在 test2 中打印在 test1 创建的全局变量 name:{name}')# 重新设置变量'name'的值为'美女'gol.set_value('name', '美女')# 创建新的变量 'age'gol.set_value('age', 18)
执行test1,输出:
1.在 test1 中打印新创建的变量 name:帅哥
2.在 test2 中打印在 test1 创建的全局变量 name:帅哥
3.在 test1 中打印在 test2.aaa 修改的全局变量 name:美女
4.在 test1 中打印在 test2.aaa 创建的全局变量 age:18
第一次在CSDN发文章,本人又只是个python初学者,代码难免不规范,意思传达到即可
我用google搜索出来的排名前几的文章,大都有个共性问题,就是在get_value()中传入两个变量,导致出错,例如:
ROOT = gol.get_value('ROOT',80)
写出来是为了加深自己理解,也避免大家重复我踩过的坑
Python设置跨文件的全局变量相关推荐
- Python实现跨文件全局变量的方法
Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量,在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模 ...
- python 全局变量使用报错没有定义_python跨文件使用全局变量的实现
Python 定义了全局变量的特性,使用global 关键字修饰 global key_word 但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行. try 1 ...
- python设置ini文件中的值_5分钟掌握Python中常见的配置文件
为什么要写配置文件 在开发过程中,我们常常会用到一些固定参数或者是常量.对于这些较为固定且常用到的部分,往往会将其写到一个固定文件中,避免在不同的模块代码中重复出现从而保持核心代码整洁. 这个固定文件 ...
- php 全局变量 $global 跨文件,PHPGlobal全局变量 - 米扑博客
Global是php中一个比较特殊的命令,大家直接叫他超级全局变量. 很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问. PHP Global变量在实际应用中,会发 ...
- python设置ini文件中的值_PyCharm设置python文件模板,自动读取文件信息。
#!/usr/bin/env python # -*- coding:utf-8 -*- '''================================================= @P ...
- Python跨文件全局变量的方法
Python实现跨文件跨线程全局变量的方法 参考:https://www.cnblogs.com/rnckty/p/7722603.html 跨文件全局变量不能跨进程,进程之间是隔绝的,必须用进程间通 ...
- Python global 全局变量,多文件,跨文件使用
文章目录 一.前文 二.源码 三.运行 一.前文 Python中,通过global关键字实现多文件,跨文件的全局变量调用使用. 二.源码 app.py 全局变量文件,被调用的.其中有: 一个全局整数n ...
- python跨文件全局变量_Python跨文件全局变量的使用
尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...
- Python跨文件全局变量
尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...
最新文章
- 神经网络为何越大越好?这篇NeurIPS论文证明:鲁棒性是泛化的基础
- python3实现mysql导出excel
- 一群人花费了四年的时间以NASA的数据巨制“月球”
- php 接口数组排序,php 数组排序
- 返回局部变量或临时变量的地址_C++的函数不可以返回局部变量的指针
- Nodejs学习笔记(六)——Mysql模块
- 9种高性能可用高并发的技术架构
- ActionBar -- Toolbar
- 发布Drools Workbench到Tomcat on Linux
- 过去几年接触了很多小公司小品牌
- 典型测试错误(英中文对照)
- 区块链在图书馆中应用
- Graphviz 画图教程
- 怎么安装消息队列服务器,安装和配置消息队列(针对存档服务器)
- 使用 Microsoft Teams 开会到底有多少途径——参会
- java rs 什么意思_rs是什么意思?
- SpringBoot笔记(五)Linux系统与项目部署
- Python画中国地图-数据导入
- 日本研发创可贴式的皮肤传感器
- 扑克牌游戏“快算24”算法
热门文章
- 基于TCP/UDP的P2P网络通信协议研究与实现
- 利用python3自动在36kr里查找自己感兴趣的内容
- 塔设备设计手册_石油化工设备设计选用手册-塔器(搜索无重复) - 化工设备 - 小木虫 - 学术 科研 互动社区...
- 杀戮尖塔用java也打不开_尖塔奇兵黑屏闪退怎么办
- VUE中自定义一个获取输入车牌号码组件
- java中从1000万个随机数中查找出相同的10万个随机数花的最少时间
- vip_goup pro_ solv_idea
- 确定sw1开关信号输入端口_do编码器脉冲计数器ModbusTCP开关量信号采集模块pwmRJ45网络接口...
- 北京市交通需求管理政策20年发展历程及反思
- MODBUS 通信协议概述