您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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_variablefileB只需使用类似的名称,即可在命名空间中进行任何操作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](而不是附加)。

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

其他 2022/1/1 18:50:08 有317人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶