gpt4 book ai didi

python - 从另一个文件导入和更改变量

转载 作者:太空狗 更新时间:2023-10-29 22:25:38 24 4
gpt4 key购买 nike

好的...

我搜索并搜索了一个可以直接回答我的问题的答案,但没有成功。我的问题很直接,老实说,我认为那里会有更直接的答案。请记住,我对这门语言还比较陌生,并且还在学习中。

所以我将使用 fileAfileB 作为我的两个文件,并使用 x 作为我的示例变量。变量 x 包含在 fileB 中。如何将变量 x 导入 fileA然后通过 raw_input 将 x 更改为另一个值然后用新值更新 fileB 中的变量 x

我不确定这是否可能,但我肯定会这么想。我正在使用 python 2.7.11,谢谢你。

最佳答案

如果您所指的“变量”是一个可变值,那么您所要求的就会起作用。

文件B:

my_variable = ["a list with a string in it"]

文件A:

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 这样的名称。您可以将命名空间中的内容重新绑定(bind)到您想要的内容:

文件B:

my_variable = 1    # something immutable this time

文件A:

import fileB
fileB.my_variable = 2 # change the value in fileB's namespace

这可能是最简单的方法。

另一种解决方案是将不可变变量放入可变容器中,然后修改容器而不是变量。例如,如果字符串 "a list with a string in it" 是我们想要更改的第一个示例的值,我们可以简单地为 my_variable[0]< 分配一个新值(而不是追加)。

一种常见的方法是将值放入字典、列表甚至类(或类的可变实例)中。然后您可以导入容器对象并对其进行变异以更改您关心的值。

关于python - 从另一个文件导入和更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913078/

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