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

如何制作跨模块变量?

慕震博
2023-03-14
问题内容

__debug__变量很方便,部分原因是它会影响每个模块。如果我想创建另一个工作方式相同的变量,我该怎么做?

从某种意义上说,如果我在一个模块中更改foo,而在其他模块中对其进行更新,则该变量(让我们成为原始变量,并将其称为“
foo”)不必是真正的全局变量。如果我可以在导入其他模块之前设置foo,然后它们会看到相同的值,那很好。


问题答案:

我不以任何方式,形状或形式认可该解决方案。但是,如果您将变量添加到__builtin__模块中,则__builtin__默认情况下,就像所有其他模块(包括所有模块)中的全局变量一样,将可以对其进行访问。

a.py包含

print foo

b.py包含

import __builtin__
__builtin__.foo = 1
import a

结果是打印了“ 1”。

编辑:
__builtin__模块可用作本地符号__builtins__-这就是其中两个答案之间存在差异的原因。另请注意,__builtin__它已builtins在python3中重命名为。



 类似资料:
  • 问题内容: 该变量很方便,部分原因是它会影响每个模块。如果我想创建另一个工作方式相同的变量,我该怎么做? 从某种意义上说,如果我在一个模块中更改foo,而在其他模块中对其进行更新,则该变量(让我们为原始变量,并将其称为“ foo”)不必是真正全局的。如果我可以在导入其他模块之前设置foo,然后它们会看到相同的值,那很好。 问题答案: 我不以任何方式,形状或形式认可该解决方案。但是,如果你将变量添加

  • 问题内容: 我有一个似乎很基本的问题,但我似乎在任何地方都找不到任何帮助。 XYZ.doSomething()无法说出NameError:未定义名称“ XYZ”即使从file_a完成的标准导入(如“ import sys”)似乎也无法使其在file_b中可用。我以为应该工作。我的理解错了吗?如果是,那么是否有办法在文件之间具有通用的导入和全局变量?(如果没有帮助,我曾经是C ++和Java程序员,

  • 问题内容: 假设我有一个名为的软件包,其中包含: 和: 然后我执行以下脚本: 这是我的期望: 这是我得到的: 谁能解释我的误解? 问题答案: 您正在使用。在导入模块的全局范围(或​​发生import语句的任何范围)中成为符号。 当您为指定新值时,您也只是在更改哪些值点,而不是实际值。尝试直接使用in导入,并通过设置在那里进行实验。这样,您实际上将在此上下文中修改哪个是“实际”值。 它有点令人费解,

  • 假设我有3个模块:mod1、mod2和mod3。 在正常情况下,文件系统层次结构应为: 但我想要的是: 如何在Android Studio 1.1.0中做到这一点? PS:我发现这篇文章,但它似乎不起作用,或者它适用于AS的早期版本,而不是1.1.0:如何在子目录中移动模块?

  • 如何在侧滑块中制作一些不同类型的动画。有图书馆吗?如果有图书馆,请提供我。

  • 问题内容: 我需要制作一个套接字模块的副本才能使用它,并且还要对猴子的另一个套接字模块进行修补并以不同的方式使用它。 这可能吗? 我的意思是真正地复制一个模块,即在 运行时 获得与复制,将功能更改为并将其安装为扩展程序相同的结果。 问题答案: 您总是可以做一些技巧,例如导入模块,然后将其从sys.modules中删除或尝试复制模块。但是,Python已经在其标准库中提供了所需的内容。 Python