【python】python跨文件使用全局变量

简介: 【python】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

如果对您有帮助,点赞+关注

(关注“测试开发自动化” 弓中皓,查看历史文章,更详细的解析说明)


相关文章
|
6天前
|
IDE 开发工具 Python
python中SyntaxError: unexpected EOF while parsing(语法错误:解析时遇到意外的文件结束)
【5月更文挑战第14天】python中SyntaxError: unexpected EOF while parsing(语法错误:解析时遇到意外的文件结束)
30 6
|
3天前
|
Linux Python Windows
打包Python程序文件:pyinstaller实现
本文介绍基于Python语言中的pyinstaller模块,将写好的.py格式的Python代码及其所用到的所有第三方库打包,生成.exe格式的可执行文件,从而方便地在其他环境、其他电脑中直接执行这一可执行文件的方法。
|
7天前
|
安全 Python
Python 多进程日志输出到同一个文件并实现日志回滚
Python 多进程想要实现将日志输出到同一个文件中,使用同一个日志句柄,且日志需要按照日期,大小回滚。
|
7天前
|
存储 JSON 缓存
Python基础教程——文件I/O
Python基础教程——文件I/O
|
7天前
|
存储 人工智能 自然语言处理
Python编程实验五:文件的读写操作
Python编程实验五:文件的读写操作
21 0
|
7天前
|
存储 JSON JavaScript
Python文件和异常(二)
Python文件和异常(二)
18 0
|
7天前
|
存储 文件存储 Python
Python文件和异常(一)
Python文件和异常(一)
15 0
|
7天前
|
存储 文件存储 Python
Python基础 --- 实现学生管理系统(Python 文件版本)
Python基础 --- 实现学生管理系统(Python 文件版本)
27 4
|
8天前
|
Python
Python如何把脚本编译成可执行exe文件_python脚本编译成可执行文件
Python如何把脚本编译成可执行exe文件_python脚本编译成可执行文件
|
8天前
|
数据采集 数据挖掘 关系型数据库
2024年最新【python基础教程】csv文件的写入与读取(1),面试官不讲武德
2024年最新【python基础教程】csv文件的写入与读取(1),面试官不讲武德