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

locals()。update(dictionary)不会添加所有变量

夏骏
2023-03-14
问题内容

我一直在使用字典对象加载变量,但是值会更新。我在这里想念什么?

assert "run_LMM" in all_variables.keys()
locals().update(all_variables)
assert "run_LMM" in locals()

最后一行是我得到一个断言错误。这是怎么回事?


问题答案:

这是docs的预期行为:

该字典的内容不得修改;更改可能不会影响解释器使用的局部变量和自由变量的值。

我认为,其原因之一是在函数编译期间定义了变量是全局变量还是局部变量,因此在:

def func():
    locals()['val'] = 1
    print val

最后一条语句始终从全局变量读取,因为未声明局部变量。因此,动态添加本地人的能力将使生活更加艰难。



 类似资料:
  • 我正在尝试添加一个表单内的多种颜色的选项。问题是,即使在添加了一个在第一个颜色字段下面添加一个新字段的按钮之后,后续字段也不会保存在jQuery调用和PHP控制器上的dd()中。 供参考 以下是点击submit后我得到的信息。

  • 当我添加测试JsonObject列表时,只有最后一个JsonObject被添加到JsonArray。我不明白为什么,因为我遵循oracle的留档。https://docs.oracle.com/javaee/7/api/javax/json/JsonArray.html 名为TestRun的类中的方法 Main(注意:我使用faker生成随机信息)

  • 如何添加一个“全局”变量(如用户名),以便在模板上下文中使用? 目前,我正在将这些显式设置到我的TemplateController中的每个ModelAndView对象。

  • 问题内容: 如何将所有从mysql_query的行添加到mysql_fetch_array()?我希望能够尽可能有效地执行此操作,因为它可以处理很多行。 问题答案: 最常见的方式: 如文档中的示例所示。

  • 我正在编写一个单文件脚本,该脚本旨在通过

  • 当我试图在模板上生成带有图标的电子邮件时,我遇到了Thymeleaf的问题。我已经按照留档建议的步骤进行了操作,请参见第4.3部分,但在电子邮件中,只显示了3个图标中的2个。 首先我加载图标: 然后我将图标添加到: 在哪里: 然后,在发送电子邮件之前,我在

  • Sooner or later you have some things you want to have in every single view or helper function or whatever. In PHP the way to go are global variables. However, that isn’t possible in WSGI applications

  • 问题内容: 我不确定导致该问题的原因,但是现在在IntelliJ中添加新文件或程序包不会将它们添加到Subversion中,而我必须通过右键单击-> subverion-> add手动添加它们。 是否有设置可以控制这种行为? 问题答案: 转到 文件- >设置->版本控制->确认->创建文件时,您可能正在寻找“ 静默添加 ”。 注意:在IntelliJ 6或更早版本中,这是通过 文件- >设置->版