gpt4 book ai didi

python - 在 Python 中跨多个文件使用和设置全局变量

转载 作者:行者123 更新时间:2023-11-30 22:42:22 26 4
gpt4 key购买 nike

我有三个文件。在第一个中,我定义了全局变量。

# file1.py
ABC = 111

在第二个文件中,我更改了全局变量的内容。

# file2.py
from file1 import *

def set_value():
global ABC
ABC = 222

在第三个文件中,我尝试使用 file2.py 中定义的 set_value() 来更改全局变量的内容并打印它。

# file3.py

from file1 import *
from file2 import *

set_value()
print ABC

结果是 111 而不是 222。新值未在全局变量中设置。如何使用 file2.py 中的函数设置 file1.py 中的全局值?

最佳答案

from file1 import * 行做了两件事:

  1. 它将文件 file1.py 导入到模块缓存中。
  2. 它会创建本地命名空间中所有已定义符号的新引用。

由于您有单独的引用,因此无法更新模块中的引用。如果这些是可变变量,您可以更新它们并在模块本身中查看这些更新。例如,如果您有 ABC = [111],则可以执行 ABC[0] = 222,您就会看到更改。

如果你想改变模块本身,你需要使用模块的引用;模块是可变的!

# file2.py
import file1

def set_value():
file1.ABC = 222

.

# file3.py

import file1
from file2 import *

set_value()
print file1.ABC

关于python - 在 Python 中跨多个文件使用和设置全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42164663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com