首页 >后端开发 >Python教程 >如何在不使用 `pickle` 或 `io` 的情况下在 Python 文件之间共享全局变量?

如何在不使用 `pickle` 或 `io` 的情况下在 Python 文件之间共享全局变量?

Barbara Streisand
Barbara Streisand原创
2024-12-25 19:03:10165浏览

How Can I Share Global Variables Between Python Files Without Using `pickle` or `io`?

在文件之间使用全局变量,无需 pickle 或 io 编写

全局变量提供了一种在程序的多个部分之间共享数据的便捷机制。然而,从另一个文件访问一个文件中定义的全局变量可能具有挑战性。

考虑以下场景:您有一个包含多个文件的项目,并且您想要定义所有这些文件都可以访问的全局变量.

方法一:间接访问

跨文件使用全局变量的难点在于模块隔离。 Python 中的模块是独立执行的,因此在一个模块中定义全局变量不会自动使其可供其他模块使用。

要解决此问题,请考虑在单独的文件中定义全局变量,例如 settings.py 。该文件将负责初始化并提供对全局变量的访问。

# settings.py
def init():
    global myList
    myList = []

# main.py
import settings
settings.init()  # Initialize the global variables
import subfile  # Import the subfile that needs access to the globals

# subfile.py
import settings
def stuff():
    settings.myList.append("hey")  # Access the global variable

方法 2:直接访问

另一种方法是使用模块属性声明全局变量。这本质上将变量公开为模块的属性。

# settings.py
myList = []

# main.py
import settings
import subfile

# subfile.py
import settings
def stuff():
    settings.myList.append("hey")

两种方法都允许您跨多个文件访问全局变量,确保整个程序中的数据一致性。

以上是如何在不使用 `pickle` 或 `io` 的情况下在 Python 文件之间共享全局变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn