Python跨文件共享全局变量的实现方案

唐可
唐可
发布时间:2026-10-13| 4人浏览过
原创

本文详解Python中跨文件共享全局变量的实现方法。针对global关键字仅在当前模块生效的限制,提出通过独立的全局变量管理模块(globalvar.py)集中存储数据。通过设置与获取函数,实现多个Python文件间变量的读写共享,并提供完整的代码示例与运行结果分析。

前言

在C语言等编译型语言中,变量必须先声明后使用,因此可以明确区分当前使用的是全局变量还是局部变量。例如:

int a = 5; 
void test(void) 
{ 
a = 1; // 没有先声明,所以用的是全局的变量a 
} 
void test1(void) 
{ 
int a; 
a = 2; // 前面声明了,所以用的是局部变量a,对其所做的修改不会影响全局变量a 
} 
void main(void) 
{ 
printf("before: a = %d\n", a); 
test(); 
printf("after test: a = %d\n", a); 
test1(); 
printf("after test1: a = %d\n", a); 
} 

而在Python中,变量无需预先声明即可直接使用,这使得跨文件访问全局变量变得复杂。

Python跨文件全局变量的实现

Python中的global关键字用于声明变量为全局变量,但该作用域仅限于当前模块(.py文件)。若在其他.py文件中再次使用global声明同一变量,由于该模块中不存在该变量定义,程序将报错提示未定义。

借鉴global关键字的思路,既然单文件内生效,我们可以创建一个专门用于管理全局变量的“全局变量管理模块”,以此实现跨文件共享。

全局变量管理模块 globalvar.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
def _init():
 global _global_dict
 _global_dict = {}
def set_value(name, value):
 _global_dict[name] = value
def get_value(name, defValue=None):
 try:
  return _global_dict[name]
 except KeyError:
  return defValue

设置全局变量 a.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import globalvar as gl
gl._init()
gl.set_value('name', 'cc')
gl.set_value('score', 90)

获取全局变量 b.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import globalvar as gl
name = gl.get_value('name')
score = gl.get_value('score')
print("%s: %s" % (name, score))

主程序 main.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import a
import b

运行主程序文件 python main.py,得出的结果是 cc: 90

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对本站的支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。