python跨文件使用全局变量的实现

作者:米码收割机 时间:2022-03-31 17:24:36 

跨文件使用全局变量

有多个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

标签:python,跨文件,全局变量
0
投稿

猜你喜欢

  • 将 html 转成 ubb代码的小脚本

    2013-06-25 07:07:00
  • python监控文件或目录变化

    2023-09-05 16:08:28
  • python 切片和range()用法说明

    2021-12-12 07:40:52
  • python flask之模板继承方式

    2022-05-26 03:38:24
  • IE6下的CSS BUG枚举

    2010-06-11 10:45:00
  • python用opencv将标注提取画框到对应的图像中

    2023-01-18 21:10:16
  • sql存储过程获取汉字拼音头字母函数

    2011-11-03 16:58:05
  • 使用PyCharm调试程序实现过程

    2023-09-30 10:27:08
  • css表单中textarea域背景图片设置方法

    2008-04-21 13:56:00
  • vertical-align表单元素垂直对齐

    2009-07-27 13:02:00
  • 无忧 月影出书啦《JavaScript王者归来》

    2008-01-09 13:45:00
  • Python 文件数据读写的具体实现

    2023-07-08 12:15:06
  • python脚本定时发送邮件

    2023-08-07 16:36:02
  • Javascript 闭包[翻译]

    2008-09-28 20:59:00
  • 深入了解NumPy 高级索引

    2023-07-02 05:22:51
  • 解析Oracle数据库中的对象集合schema

    2023-07-22 20:42:34
  • 基于PyQt5制作Excel文件数据去重小工具

    2023-10-14 05:44:58
  • ASP编程入门进阶(十):Global.asa文件

    2008-07-12 07:05:00
  • 深度学习Tensorflow 2.4 完成迁移学习和模型微调

    2023-12-04 14:56:17
  • 基于Python实现中秋佳节月饼抢购脚本

    2023-02-23 12:48:39
  • asp之家 网络编程 m.aspxhome.com