如果 “变量” 你指的是一个可变的值,你在做什么要求将会工作。
FILEB:
my_variable = ["a list with a string in it"]
的fileA:
from fileB import my_variable # import the value
my_variable.append("and another string")
fileA
后已经加载fileB.my_variable
将在这两个值。
但是,这只适用于可变值。如果该变量是不可变的,fileA
中的代码无法对其进行更改,因此您将遇到问题。没有办法直接解决这个问题,但有很多方法可以解决这个问题,并且仍然能够满足您的需求。
最简单的就是使用import fileB
而不是from fileB import my_variable
。这可以让你在fileB
的命名空间中使用类似fileB.whatever
这样的名称。您可以重新绑定命名空间中的东西到你的心脏的内容:
FILEB:
my_variable = 1 # something immutable this time
的fileA:
import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
这可能是最简单的方法。
另一种解决方案是将不可变变量放入可变容器中,然后修改容器而不是变量。例如,如果字符串"a list with a string in it"
是我们希望改变第一个示例的值,那么我们可以简单地为my_variable[0]
(而不是附加)指定一个新值。
执行此操作的常用方法是将值放入字典,列表或甚至放入类(或其中一个可变实例)中。然后你可以导入容器对象并改变它来改变你关心的值。
为什么你需要这个? –
@PeterWood所以基本上...我有一个文件,我正在使用的球员统计(fileB),其中有一个变量,跟踪球员的水平。我想让我使用raw_input来更改该变量来调试程序并在需要时更改级别,以便在编辑它们之后检查各个级别。 – Cether
这听起来像一个配置文件?在FileA中导入FileB,然后创建一个名为modifyParam(fileB.player.level)的函数,FileB player.level = 5 – spicyramen