python跨文件使用全局变量的实现
作者:米码收割机 发布时间:2022-03-31 17:24:36
标签:python,跨文件,全局变量
跨文件使用全局变量
有多个py文件同时使用一个全局变量时,那应该如何使跨文件,用这个全局变量呢?
1. 错误示范
file1.py代码如下:
num = 1 # 在file1中定义全局变量num=1
def add_value():
global num
num += 100
file2.py代码如下:
from file1 import *
def sub_value():
global num
num -= 10
add_value() # 在file2中执行file1中的add_value函数
sub_value() # 执行sub_value函数
print(num) # 打印结果:-9
很多同学认为应该打印92,即:1+100-10 = 91。但是实际只打印了-9,也就说明,file2.py中执行的add_value并没有让全局变量num发生变化。
那么,如何让num变为真正的全局变量呢?
2. 正确示范
首先,我们单独定义一个glob.py文件
def _init(): # 初始化
global _global_num
_global_num = [1] # 定义一个列表存放全局变量的初始值
def add_num(num): # 为全局变量执行加法
_global_num[0] += num
def sub_num(num): # 为全局变量执行减法
_global_num[0] -= num
def get_all(): # 取出全局变量的值
return _global_num[0]
其次,file1.py文件代码如下:
import glob
glob._init() # 必须在file1.py中初始化全局变量
def add_value(num):
glob.add_num(num)
最后,file2.py文件代码如下:
import glob
from file1 import *
def sub_value(num):
glob.sub_num(num)
add_value(100)
sub_value(10)
print(glob.get_all()) # 运行结果:91
来源:https://blog.csdn.net/weixin_44244190/article/details/129260542
0
投稿
猜你喜欢
- optimizer.param_groups: 是长度为2的list,其中的元素是2个字典;optimizer.param_groups[0
- 环境:pyecharts库,echarts-countries-pypkg,echarts-china-provinces-pypkg,ec
- 阅读上一篇:Freshow工具使用方法一. eval加密是在网马解密中最常见的,eval在jscript脚本中实际上是一个函数,简单可以理解
- 一般用 createProcessingInstruction 方法创建处理指令指定参数为 "xml","ve
- 最近在做人脸识别清洗样本的工作,发现经过人脸对齐后存在部分图片十分模糊,所以用opencv滤了一下。原理就是使用了cv2.Laplacian
- sys模块提供了与python解释器紧密相关的一些变量和函数。sys部分常用函数函数说明path获取模块文件搜索路径的字符串,或临时指定新搜
- 本文借用HTML的css语法,将样式表应用到窗口部件。这里只是个简单的例子,实际上样式表的语法很丰富。以下类似于css: StyleShee
- 对数据库的管理常规就是进行预防性的维护,以及修复那些出现问题的内容。进行检查和修复通常具有四个主要的任务:1. 对表进行优化2. 对表进行分
- 使用astype实现dataframe字段类型转换# -*- coding: UTF-8 -*-import pandas as pddf
- 有助于效率的类型选择1、使你的数据尽可能小最基本的优化之一是使你的数据(和索引)在磁盘上(并且在内存中)占据的空间尽可能小。这能给出巨大的改
- 目标函数编码方式本程序采用的是二进制编码精确到小数点后五位,经过计算可知对于 其编码长度为18,对于 其编码长度为15,因此每个基于的长
- 去过新浪或者搜狐吗?虽然我们都不愿意看广告,但是它们做广告的技术我们却应该学到手,这不,又一种很流行的做法儿,做成那种两边对称的对联式的广告
- asp之家注:长文章分页算是asp编程中一个比较经典单位问题,怎么分页,什么时候分页.方法挺多,有的是人为的加入分页标志,有的是程序自动加分
- 前言今天我的 PyCharm 突然间就死掉了,双击图标,等半天没有反应,也没有抛出什么错误。打开任务管理器,发现双击时启动了一个PyChar
- MySQL GUI Tools是一套图形化桌面应用工具套装,可以用来管理MySQL服务器。该套装工具包含三个工具:MySQL Query B
- HTML 5基本思维概念形成于2003年,之后W3C对页面超文本应用技术工作小组(WHATWG)开发的HTML草图颇感兴趣,这个小组的开发人
- 背景:之前写的接口测试一直没有支持无限嵌套对比key,上次testerhome逛论坛,有人分享了他的框架,看了一下,有些地方不合适我这边自己
- 线程和进程1、线程共享创建它的进程的地址空间,进程有自己的地址空间2、线程可以访问进程所有的数据,线程可以相互访问3、线程之间的数据是独立的
- 1、使用mysqldump工具将MySql数据库备份mysqldump -u root -p -c --default-character-
- 情况1:Go语言中,若在子go程中创建一个新 go程,子go程释放(销毁),新创建的go程不会随着子go程的销毁而销毁。原因:go程共享堆,