【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

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

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


相关文章
|
1天前
|
Linux iOS开发 MacOS
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件
|
2天前
【Python21天学习挑战赛】文件读写操作
【Python21天学习挑战赛】文件读写操作
|
4天前
|
存储 Python 容器
|
5天前
|
JSON JavaScript 数据格式
python遍历目录文件_结合vue获取所有的html文件并且展示
python遍历目录文件_结合vue获取所有的html文件并且展示
4 0
|
6天前
|
存储 安全 Python
Python从入门到精通:2.2.2异常处理与文件操作:文件的打开、读取、写入和关闭操作。
Python从入门到精通:2.2.2异常处理与文件操作:文件的打开、读取、写入和关闭操作。
|
8天前
|
Python
python html(文件/url/html字符串)转pdf
python html(文件/url/html字符串)转pdf
8 0
|
12天前
|
存储 Python
用Python实现批量下载文件——代理ip排除万难
用Python实现批量下载文件——代理ip排除万难
|
12天前
|
JSON 关系型数据库 数据库
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
38 0
|
12天前
|
数据挖掘 索引 Python
Python 读写 Excel 文件
Python 读写 Excel 文件
12 0
|
12天前
|
数据安全/隐私保护 Python
Python文件与目录操作:面试中的高频考点
【4月更文挑战第15天】本文介绍了Python文件和目录操作的面试重点,包括文件的读写、目录遍历及权限管理。强调了文件关闭、异常处理、特殊文件判断以及权限位和权限字符串的理解。提供了代码示例,如读写文件、遍历目录和更改文件权限,帮助读者在面试中表现出色。掌握这些技能将对编程求职之路大有裨益。
17 0