当前位置: 首页 > 面试题库 >

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

司空镜
2023-03-14
问题内容

好的…

我已经搜索并寻找了可以直接回答我的问题的答案,但是没有成功。我的问题很简单,老实说,我想在那里会有一个更直接的答案。请记住,我还是该语言的新手,并且仍在学习中。

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

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


问题答案:

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

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](而不是附加)。

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



 类似资料:
  • 问题内容: 如何将变量从一个文件导入到另一个文件? 示例:具有变量以及如何将其传递给? 如何将 所有 变量从一个导入到另一个? 问题答案: 将导入file1中的所有对象和方法

  • 如何将变量从一个文件导入到另一个文件? 示例:具有变量和如何将它们传递到? 如何将所有变量从一个导入到另一个?

  • 问题内容: 在将其标记为重复之前, 请阅读我的问题: 我正在尝试从子目录的文件中导入类 并且在我的课程中有()我尝试了什么: 放入main.py: 我收到错误消息: 从文件导入Klasa ImportError:没有名为“文件”的模块 当我尝试使用时: 我收到此错误: tmp = Klasa() NameError:未定义名称“ Klasa” 我在子文件夹中放了一个空格,它仍然不起作用,而我在 :

  • 问题内容: 我在尝试从另一个包和文件导入类型时遇到问题。我要导入的结构是下面的那个。 如果我将PriorityQueue及其所有方法放在同一个文件中,则可以使用 我一直在像疯子一样在互联网上搜索这个简单问题的答案,但我没有找到答案。我通常用Java编程,而导入类是如此基础。 问题答案: 在Go中,您不导入类型或函数,而是导入 包 (请参见Spec:导入声明)。 导入声明示例: 通过导入包,您可以访

  • 问题内容: 我是React的新手。希望使用单独文件中的少量组件来开发应用程序并将其导入到我的App.js中 我尝试过但无法弄清楚我在做什么错。 这是我的html: 这是我的App.js :( 来自js /目录) 这是我的MyComp.js (来自js / components /目录) 如果我这样尝试,我什么也看不到。而如果我在App.js中创建类,则它就像一个魅力。 有什么建议我在做什么错? 问

  • 我知道这个话题在这里的100篇帖子中都有涉及,但我在这个特定的例子中遇到了很多麻烦,无法理解。 基本上,我正在使用Spritebuilder将精灵/节点导入我的游戏。我在类的正文中导入了某个特定类的精灵,但我希望能够在我的精灵类中定义一个变量,然后从类中编辑它。例如,如果我的精灵在GameScene中收集了一枚硬币,我想在精灵类中的方法中更改我的精灵的速度。 下面是我的代码,但不幸的是它不起作用。