从 Python 中的命名空间对象导入变量

2023-12-13

假设我有一个命名空间args我通过调用获得的parser.parse_args(),它解析命令行参数。

如何将此命名空间中的所有变量导入到当前命名空间?

e.g.

parser.add_argument('-p', '--some_parameter', default=1)

args = parser.parse_args()

# ... code to load all variables defined in the namespace args ...

print some_parameter

我当然可以这样做:

some_parameter = args.some_parameter

但如果我有大量参数,则每个参数都需要一个这样的行。

是否有另一种方法可以从命名空间导入变量,而不必逐一遍历它们?

PS: from args import *不起作用。

PS2:我知道这是一个不好的做法,但这在某些极端情况下会有所帮助,例如我们在构建代码和测试原型时very迅速地。


使用以下结果更新您的本地命名空间vars()功能:

globals().update(vars(args))

这一般是not这是个好主意;将这些属性保留在命名空间中。

您可能会产生比使用此方法解决的问题更多的问题,特别是如果您不小心使用dest name隐藏您关心的内置或本地的,例如list or print或者其他的东西。享受狩猎的乐趣that bug!

Tim Peters 在他的《Python 之禅》中已经阐述了这一点:

命名空间是一个非常棒的想法——让我们多做一些这样的事情吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Python 中的命名空间对象导入变量 的相关文章

随机推荐

  • Google 脚本从选择范围(不是整个工作表)中删除重复项

    下面是一个用于从电子表格中删除重复行的 Google 表格脚本 虽然它确实可以删除重复的行 但它也会在此过程中破坏单元格内的公式 我目前有一系列工作表 其中所有原始数据都包含在列中A P我的所有公式都归入列Q T 在我尝试限制以下脚本仅适用
  • WIX 安装程序在状态行中显示括号

    我正在使用 WIX 安装程序 它在状态行中显示一些括号 见下图 我没有对 WIX 文件进行更改 但仅更改了已安装的文件 我确实将 WIX 更新到了 v3 11 因为这是在 Visual Studio 2017 中使用 WIX 所必需的 我们
  • DB事务还是Java DAO的方法同步?

    我有基于Java的Web服务器 并且我还有带方法的DAO单例对象 其SQL操作的逻辑必须以某种方式同步以保证数据 完整性 可以同时从多个 Java 线程访问方法 我想知道DB事务包装 可序列化级别 是否优于DAO的方法显式同步在服务器端 是
  • Flask 客户端会话

    开始学习PythonFlaskWeb 应用程序框架 仍在学习曲线上 所以请耐心等待 我想知道客户端会话对于安全 Web 应用程序的目的有多合适 从表面上看 存在一些严重的担忧 由于所有会话变量都被序列化并编码在 cookie 中 因此应该注
  • 如何获取android中存储目录的路径

    有什么方法可以得到 storage 目录 我尝试过Environment getExternalStorageDirectory 但它返回 storage emulated 0我知道我可以使用file getParent 但由于某种原因我不
  • ADF 在 git 模式下发布混乱

    在 git 模式下 当我们想要测试管道时 ADF 会强制我们先发布 我的理解是 发布操作做了两件事 按照给定保存到本地 ADF DEV here 在分支 adf publish 我们的分支 中创建arm模板 指定 但要启用 发布 按钮 我们
  • 释放方法返回的对象

    好吧 我知道这个问题的答案应该是显而易见的 但我需要朝着正确的方向一点推动 我发现自己编写了很多遵循以下模式的方法 NSThing myMethod NSThing thing NSthing alloc init do some stuf
  • 使用 /proc/meminfo 读取 Android 设备的 RAM 总量

    我正在考虑读取 Android 设备的物理 RAM 总量 据我了解 这些信息存储在 proc meminfo中 我怎样才能阅读它 尝试这个 public void getTotalMemory String str1 proc meminf
  • 如何循环返回主菜单?

    我想知道这是否是循环回到 python 主菜单的正确方法 选择选项并完成任务后 脚本需要返回主菜单而不是退出 usr bin python def mainmenu print 1 Scan print 2 Ping print 3 Exi
  • 是否可以在 POST Json 中附加文件?

    我有一堆 JSON 序列化对象 格式的数据 我通过以下方式将此数据发送到服务器POST带标题的方法 Content Type application json 是否可以将文件附加到正文请求并立即发送 或者 JSON 数据建议仅发送文本数据
  • AttachConsole 错误 5:访问被拒绝

    我正在 Visual Studio 2013 中使用 C 控制台应用程序 在 Windows 上工作 首先我使用分离控制台FreeConsole 有用 然后 调用AllocConsole as FreeConsole 然后 AttachCo
  • 在字符列上合并大型 data.tables 会导致段错误

    我正在使用 R 版本 3 3 3 尽管我已经在 3 4 0 上复制了这个问题 并且data tableCygwin 上的版本 1 10 4 Edit 下面的评论表明这可能是 Cygwin 特有的 我需要通过字母数字 ID 列合并两个数据表
  • 为什么 jhat 的 -baseline 选项不起作用?

    为什么每个对象似乎都被标记为新对象 而不仅仅是第二个快照中但不在我的基准快照中的对象 在网上查看 我看到一些建议 我需要使用 hprof 而不是 jmap 来进行内存转储 但 hprof 似乎以完全相同的格式生成转储 这是JDK 1 6 0
  • 设置 PHP ImageMagick tmp 目录

    我正在尝试设置 ImageMagick 用于转换文件的临时目录 目前 在转换大型 PDF 时 临时文件夹很快就会达到 2 或 3 TB 这对于服务器磁盘来说太大了 因此我计划使用 AWS EFS 来存储所有内容 我将 EFS 驱动器安装在
  • 绘制隐式方程[重复]

    这个问题在这里已经有答案了 我需要在Python3中画一些曲线 我很习惯matplotlib pyplot 但我以前从未画过这样的东西 我真的很感激一些提示 特别是如何以 整洁 的方式编码的提示 和帮助 有一个例子 让我们用一颗心 x 2
  • Wix:升级时 Windows 服务有时会被卸载

    我们使用 Wix 安装我们的软件 我们的设置还安装了 Windows 服务 为了允许用户更改 Windows 服务的登录信息 我们只想在首次安装时安装该服务 并仅在卸载时将其删除 对于升级 我们手动停止服务 以便可以升级文件 我们已经做到了
  • MIPS 上的多精度算法

    我只是想在本机 MIPS 上实现多精度算术 假使 假设 一个 64 位整数位于寄存器 12 和 13 中 另一个 64 位整数位于寄存器 14 和 15 中 总和将被放置在寄存器 10 和 11 中 64 位整数的最高有效字位于偶数寄存器中
  • JSON.stringify 的逆向?

    我正在用 stringyfing 一个像这样的物体 foo bar 如何将字符串转回对象 你需要JSON parse 您的有效 JSON 字符串 var str hello world try var obj JSON parse str
  • 他们是如何在 http://artofflightmovie.com/ 中实现这些效果的?

    我一直试图了解他们是如何实现这些效果的http artofflightmovie com 到目前为止还没有成功 我什至不知道该通过谷歌搜索什么来寻求帮助 任何人都可以详细说明它 并可能放置指向插件 教程 其他网站做同样事情的链接吗 已经有一
  • 从 Python 中的命名空间对象导入变量

    假设我有一个命名空间args我通过调用获得的parser parse args 它解析命令行参数 如何将此命名空间中的所有变量导入到当前命名空间 e g parser add argument p some parameter defaul