[转载]python跨文件使用全局变量的实现
python跨文件使用全局变量的实现
Python 定义了全局变量的特性,使用global 关键字修饰
|
1
|
global key_word |
但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行。
try 1:
使用一个更宏观的思路,全局变量就用全局加载的模块解决,很遗憾也是不行,
file_1:
|
1
2
|
global aa = "test" |
file 2:
|
1
2
|
import file_1print(a) |
报错a没有定义
try 2:
file_1:
|
1
2
|
global aa = "test" |
file 2:
|
1
2
3
4
|
import file_1print(file_1.a)file_1.a = "aaa"print(file_1.a) |
这样可以,但是如果再有一个module 想用呢?
try 2:
file_1:
|
1
2
|
global aa = "test" |
file 2:
|
1
2
3
4
|
import file_1print(file_1.a)file_1.a = "aaa"print(file_1.a) |
file 2:
|
1
2
3
4
5
|
import file_1import file_2print(file_1.a)file_1.a = "aaa"print(file_1.a) |
这样就会报错,因为import 加载就会执行一遍子module ,两个module y引用关系死锁了。
try 3:
最终使用公共数据结构方式解决
file_1:
|
1
2
3
4
5
6
7
|
def init(): global a a = {}def set(arg,value): a[arg] = valuedef get(arg) return a[arg] |
file 2:
|
1
2
3
|
import file_1print(file_1.a)file_1.set("test",(test_value)) |
file 2:
|
1
2
3
4
5
|
import file_1import file_2file_1.init()print(file_1.get("test")) |
思路就是使用一个公共的字典的数据结构,在主module 中初始化,其他module都应用此module,但是不重新初始化字典。
到此这篇关于python跨文件使用全局变量的实现的文章就介绍到这了,更多相关python跨文件全局变量内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!
[转载]python跨文件使用全局变量的实现的更多相关文章
- Python跨文件全局变量的使用
尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...
- [转载]python:open/文件操作
open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式 如:' ...
- Python 跨模块使用全局变量(自定义类型)
gol.py def _init():#初始化 global _global_dict _global_dict = {} def set_value(key,value): "" ...
- Python 3 实现定义跨模块的全局变量和使用
尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...
- python2.7 跨文件全局变量的方法
有关python实现跨文件全局变量的方法. 在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况.文件1:globalvar.py #!/usr/bin/env pyt ...
- python2.7 跨文件全局变量的方法-乾颐堂
在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况. 文件1:globalvar.py 1 2 3 4 5 6 7 8 9 10 11 12 #!/usr/bin/e ...
- c++多个文件中共用一个全局变量 变量跨文件使用
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12047602.html 虽然很多博客都写过这个了 但是 我还是继续补充的详细一点吧 毕竟很多 ...
- [转载]Python 元组、列表、字典、文件
python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...
- 转载 python文件复制的方法
Python复制文件的9种方法 51Testing软件测试网 17-11-1614:13 以下是演示"如何在Python中复制文件"的九种方法. 1.shutil copyfile ...
- c语言跨文件调用函数中声明的变量
转载:weixin_33885253 变量的作用域 变量根据其作用域有全局变量和局部变量之分.全局变量作用域是整个文件,并且可以使用关键字extern达到跨文件调用的目的.但是局部变量值作用于它当前所 ...
随机推荐
- 零基础入门 Java 后端开发,有哪些值得看的视频?
目前网络上充满了大量的 Java 视频教程,然而内容却鱼龙混杂,为了防止小伙伴们踩坑,一枫结合自己的学习经验,向大家推荐一些不错的学习资源. 作为一名非科班转码选手,可以说,我是在哔哩哔哩上的研究生! ...
- [常用工具] OpenCV_contrib库在windows下编译使用指南
本文主要讲述opencv及opencv_contrib库在windows下基于vs2017编译安装指南.所用OpenCV版本为OpenCV4.4,编译平台为vs2017. 文章目录 1 下载 2 编译 ...
- Isaac Sim 机器人仿真器介绍、安装与 Docker [1]
前言与参考 此文书写于: January 6, 2023, 更新于 January 6, 2023 :可能会随着时间的变化 此教程会有过时概念哦 Isaac Sim 相关参考链接: 官方文档地址 官方 ...
- python进阶之路20 正则表达式 re模块
正则表达式前情 案例:京东注册手机号校验 基本需求:手机号必须是11位.手机号必须以13.15.17.18.19开头.必须是纯数字 '''纯python代码实现''' # while True: # ...
- Java运算的精度和溢出问题
double和float的0.1问题 代码如下 public class demo2 { public static void main(String[] args) { float f=0.1f; ...
- MarkDown语法----纯文本格式的标记语言
一.基本语法 1.标题 一级标题: "# + 空格 + 标题内容" 二级标题: "## + 空格 + 标题内容" .... 2.字体 粗体: "**+ ...
- Quartz 使用教程
首先说说,为什么要写这篇文章: Quartz 的 v2.3.2 版本改动比较大,目前网上的资料都是旧版本,很缺乏相关资料 很多资料讲解非常不全面,例如 Quartz Listener 的介绍和使用基本 ...
- vulnhub靶场之HACKSUDO: PROXIMACENTAURI
准备: 攻击机:虚拟机kali.本机win10. 靶机:hacksudo: ProximaCentauri,下载地址:https://download.vulnhub.com/hacksudo/hac ...
- 定时调度插件------Sundial
1 插件概述 开源链接:https://gitee.com/dotnetchina/Sundial 作者:百小僧 版本:2.5.6 2 使用方式 2.1 安装 nuget :搜索Sundial或使用命 ...
- 最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性
1 介绍 策略模式最常用的场景就是用于消除代码中的if-else,这里所说的if-else并不是说任何简单的判断都引入策略模式来优化,这样反而会增加代码的复杂度. 反例:使用策略模式对一个boolea ...