先说明,此篇只是整理前人的方法

网上一搜索,排名前几的大都是一个方法,大同小异,连出现的问题都一样,让人联想.....

但直接使用时要么有问题,要么写的不适合新手学习

我总结了一下:

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设置跨文件的全局变量相关推荐

  1. Python实现跨文件全局变量的方法

    Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量,在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模 ...

  2. python 全局变量使用报错没有定义_python跨文件使用全局变量的实现

    Python 定义了全局变量的特性,使用global 关键字修饰 global key_word 但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行. try 1 ...

  3. python设置ini文件中的值_5分钟掌握Python中常见的配置文件

    为什么要写配置文件 在开发过程中,我们常常会用到一些固定参数或者是常量.对于这些较为固定且常用到的部分,往往会将其写到一个固定文件中,避免在不同的模块代码中重复出现从而保持核心代码整洁. 这个固定文件 ...

  4. php 全局变量 $global 跨文件,PHPGlobal全局变量 - 米扑博客

    Global是php中一个比较特殊的命令,大家直接叫他超级全局变量. 很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问. PHP Global变量在实际应用中,会发 ...

  5. python设置ini文件中的值_PyCharm设置python文件模板,自动读取文件信息。

    #!/usr/bin/env python # -*- coding:utf-8 -*- '''================================================= @P ...

  6. Python跨文件全局变量的方法

    Python实现跨文件跨线程全局变量的方法 参考:https://www.cnblogs.com/rnckty/p/7722603.html 跨文件全局变量不能跨进程,进程之间是隔绝的,必须用进程间通 ...

  7. Python global 全局变量,多文件,跨文件使用

    文章目录 一.前文 二.源码 三.运行 一.前文 Python中,通过global关键字实现多文件,跨文件的全局变量调用使用. 二.源码 app.py 全局变量文件,被调用的.其中有: 一个全局整数n ...

  8. python跨文件全局变量_Python跨文件全局变量的使用

    尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...

  9. Python跨文件全局变量

    尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...

最新文章

  1. 神经网络为何越大越好?这篇NeurIPS论文证明:鲁棒性是泛化的基础
  2. python3实现mysql导出excel
  3. 一群人花费了四年的时间以NASA的数据巨制“月球”
  4. php 接口数组排序,php 数组排序
  5. 返回局部变量或临时变量的地址_C++的函数不可以返回局部变量的指针
  6. Nodejs学习笔记(六)——Mysql模块
  7. 9种高性能可用高并发的技术架构
  8. ActionBar -- Toolbar
  9. 发布Drools Workbench到Tomcat on Linux
  10. 过去几年接触了很多小公司小品牌
  11. 典型测试错误(英中文对照)
  12. 区块链在图书馆中应用
  13. Graphviz 画图教程
  14. 怎么安装消息队列服务器,安装和配置消息队列(针对存档服务器)
  15. 使用 Microsoft Teams 开会到底有多少途径——参会
  16. java rs 什么意思_rs是什么意思?
  17. SpringBoot笔记(五)Linux系统与项目部署
  18. Python画中国地图-数据导入
  19. 日本研发创可贴式的皮肤传感器
  20. 扑克牌游戏“快算24”算法

热门文章

  1. 基于TCP/UDP的P2P网络通信协议研究与实现
  2. 利用python3自动在36kr里查找自己感兴趣的内容
  3. 塔设备设计手册_石油化工设备设计选用手册-塔器(搜索无重复) - 化工设备 - 小木虫 - 学术 科研 互动社区...
  4. 杀戮尖塔用java也打不开_尖塔奇兵黑屏闪退怎么办
  5. VUE中自定义一个获取输入车牌号码组件
  6. java中从1000万个随机数中查找出相同的10万个随机数花的最少时间
  7. vip_goup pro_ solv_idea
  8. 确定sw1开关信号输入端口_do编码器脉冲计数器ModbusTCP开关量信号采集模块pwmRJ45网络接口...
  9. 北京市交通需求管理政策20年发展历程及反思
  10. MODBUS 通信协议概述