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

 更新时间:2023年03月01日 15:27:38   作者:米码收割机  
本文主要介绍了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

到此这篇关于python跨文件使用全局变量的实现的文章就介绍到这了,更多相关python跨文件全局变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论