如何在多个Python模块中共享全局变量

2023-03-23 00:00:00 多个 全局变量 模块

在多个 Python 模块中共享全局变量需要一些特殊的处理。如果直接在一个模块中定义全局变量,在其他模块中是无法访问的。为了在多个模块中共享全局变量,可以使用以下方法:

将全局变量定义在一个单独的模块中,并在其他模块中使用该模块导入全局变量。
例如,我们可以在一个名为 settings.py 的模块中定义全局变量,然后在其他模块中导入这个模块:

# settings.py
website = "pidancode.com"
# module1.py
from settings import website

def print_website():
    print("网站名称:", website)
# module2.py
from settings import website

def print_slogan():
    print("网站口号:让编程更简单")
    print("网站名称:", website)

使用 global 关键字将全局变量声明为全局可用变量。
在这种方法中,我们需要在每个模块中都使用 global 关键字来声明全局变量。然后在每个模块中都可以访问和修改全局变量。

例如:

# module1.py
global website
website = "pidancode.com"

def print_website():
    global website
    print("网站名称:", website)
# module2.py
global website
website = "pidancode.com"

def print_slogan():
    global website
    print("网站口号:让编程更简单")
    print("网站名称:", website)

这种方法比第一种方法更灵活,但需要在每个模块中都使用 global 关键字声明全局变量,可能会使代码变得冗长。

无论采用哪种方法,在多个模块中共享全局变量都需要一定的注意事项。全局变量应该是只读的,或者只在必要的情况下修改。否则,多个模块中的全局变量可能会相互影响,导致程序出现不可预期的行为。

相关文章