python跨文件使用全局变量的实现
作者:fly 100% 发布时间:2023-11-27 00:16:40
标签:python,跨文件,全局变量
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,但是不重新初始化字典。
来源:https://blog.csdn.net/weiwei_xiaoyu/article/details/109611244


猜你喜欢
- 1、copy.copy()函数可用于复制列表或字典等可变值,复制后的列表和原列表是两个独立的列表。import copyorigin = [
- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管
- 今天要介绍的是,如何生成一个"继承"多个对象的实例。 比如,现在有一个"动物"对象的构造函数, fu
- 一、打开、关闭文件 open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零
- 1、新建DLL打开VB6-->文件-->新建工程-->选择ActiveX DLL-->确定2、将默认工程、类重命名工
- 本文转自微信公众号:"算法与编程之美" Python用HBuilder创建交流社区APP 基于P
- 通过urllib2、re模块抓种子思路1.用程序登录论坛(如果需要登录才能访问的版块)2.访问指定版块3.遍历帖子(先取指定页,再遍历页面所
- 熟悉SQL的人都知道,完成同一个任务,SQL可能有多种写法,但不同写法的查询性能可能会有天壤之别,本文列举出五个查询优化的方法,当然,优化的
- 最近在项目中出现golang内存溢出的问题,master刚开始运行时只有10多M,运行几天后,竟然达到了10多个G。而且到凌晨流量变少内存也
- 由于一些不可预测的因素,必须使用python2.7进行开发,所以研究了一下怎么在Anaconda3下建立2.7的开发环境,发现十分方便,在此
- 10月15日,Adobe公司正式面向全球公布了第10个版本的Flash播放器,这一版本播放器的昵称是大家已经所熟知的“宇宙”。这是一款增加了
- 这段时间服务器崩溃2次,一直没有找到原因,今天看到论坛发出的错误信息邮件,想起可能是MySQL的默认连接数引起的问题,一查果然,老天,默认
- python使用函数改变list函数内改变外部的一个list如果这么写def rotate(nums, k): l
- 重装系统永远是个好办法,但有谁喜欢这么做呀:( 后来无意发现是卸载的时候没有卸载完全导致,下面给出完整的卸载MySQL 5.1的卸载方法:
- 这篇文章主要介绍了Python测试线程应用程序过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 本文实例为大家分享了python使用opencv切割图片白边的具体代码,可以横切和竖切,供大家参考,具体内容如下废话不多说直接上码,分享使人
- return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回程序运行到所遇到的第一个return即返回(退出def块),不会再运行
- 端口扫描是非常实用的,不止用在信息安全方面,日常的运维也用得到。这方面的工具也不要太多,搞过 CTF 的朋友会告诉你有多少端口扫描工具,那为
- 一 描述561. 数组拆分 I - 力扣(LeetCode) (leetcode-cn.com)给定长度为 2n 的整数
- 本文给大家分享Python解释器安装以及PyCharm安装过程。很多朋友问小编要完整的安装教程,现分享给大家。一、Python解释器安装解释