好了...
我搜索并搜索了一个直接回答我的问题的答案,但没有成功。我的问题非常简单,老实说我会有更直接的答案。请记住,我仍然是相对较新的语言,我还在学习。
因此,我将使用fileA
和fileB
作为我的两个文件,x
作为我的示例变量。变量x
包含在fileB
。如何将变量x
导入fileA
,然后将x
更改为另一个值raw_input
,然后在x
中使用新值更新变量fileB
吗?
我不确定这是否可能,但我确实想这么想。我正在使用python 2.7.11,谢谢你的高级。
答案 0 :(得分:5)
如果您所指的“变量”是一个可变值,那么您要求的就是可行的。
FILEB:
from fileB import my_variable # import the value
my_variable.append("and another string")
的fileA:
fileA
加载fileB.my_variable
后fileA
将包含两个值。
但是,这只适用于可变值。如果变量是不可变的,import fileB
中的代码不能在适当的位置更改它,因此您将遇到问题。没有办法直接解决这个问题,但是有很多方法可以解决这个问题并且仍然可以达到你想要的目的。
最简单的方法是使用from fileB import my_variable
代替fileB
。只需使用fileB.whatever
之类的名称,即可在my_variable = 1 # something immutable this time
的命名空间中显示任何内容。您可以将命名空间中的内容重新绑定到您心中的内容:
FILEB:
import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
的fileA:
"a list with a string in it"
这可能是最简单的方法。
另一种解决方案是将不可变变量放在可变容器中,然后修改容器而不是变量。例如,如果字符串my_variable[0]
是我们想要更改第一个示例的值,我们可以简单地为vertical-align: top; //middle actually puts it even lower
height: 83px; //the same as the larger area
分配一个新值(而不是追加)。
执行此操作的常用方法是将值放入字典,列表或甚至类(或一个类的可变实例)中。然后你可以导入容器对象并改变它以改变你关心的值。
答案 1 :(得分:0)
如果你的意思是常量变量,在90%的情况下,这意味着程序的架构不好,因为它可能更容易实现。
可能的方法之一是:
使用输入参数在两个文件中创建一些函数并执行它们并使用值进行播放。
例如:
fileA.py
from fileB import testB
TEST_VAL = 5
def testA(val):
TEST_VAL += 10
result = testB(TEST_VAL)
# play with changed TEST_VAL
fileB.py
def testB(val):
# do something
return val ** 2