如果您所指的“变量”是一个可变值,那么您所要求的将起作用。
fileB:
my_variable = ["a list with a string in it"]
fileA:
from fileB import my_variable # import the valuemy_variable.append("and another string")之后
fileA已加载
fileB.my_variable将在这两个值。
但是,这仅适用于可变值。如果变量是不可变的,则其中的代码
fileA无法将其更改到位,因此您会遇到问题。无法直接解决此问题,但是有很多方法可以解决此问题并仍然获得所需的结果。
最简单的方法就是使用
import fileB代替
from fileB importmy_variable。
fileB只需使用类似的名称,即可在命名空间中进行任何操作
fileB.whatever。您可以将名称空间中的内容重新绑定到您内心的内容:
fileB:
my_variable = 1 # something immutable this time
fileA:
import fileBfileB.my_variable = 2 # change the value in fileB's namespace
那可能是最简单的方法。
另一种解决方案是将不可变变量放在可变容器内,然后修改容器而不是变量。例如,如果字符串
"a list with a string init"是我们要在第一个示例中更改的值,则可以简单地为分配一个新值
my_variable[0](而不是附加)。
一种常见的方法是将值放入字典,列表甚至是类(或其中一个的可变实例)中。然后,您可以导入容器对象并对其进行突变以更改您关心的值。



