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

名称中带有破折号或连字符(-)的Python模块

戚升
2023-03-14
问题内容

我有一个名称为dash的现有python模块foo-bar.py

我希望避免更改模块名称,因为该模块是共享的,我将不得不追踪所有使用该模块的位置,以便我的特殊情况能够起作用。

有没有办法加载名称包含通常被禁止的“-”的模块?

(我确实知道这不是最佳实践。但是,在这种情况下,我宁愿不要重新设计和测试更多的应用程序。而且,我不认为我的公司老板会赞成我花时间实施这样的变化。)


问题答案:

您可以使用来做到这一点__import__()。例如:

foobar = __import__("foo-bar")

但是,您实际上应该重命名模块。这样,当模块的文件名与程序中使用的标识符不同时,您可以避免混淆。



 类似资料:
  • 问题内容: 我想导入foo-bar.py。这有效: 这不是: 我的问题:有什么方法可以使用上述格式,即导入其中包含的模块? 问题答案: 你不能。 不是标识符。将文件重命名为 编辑: 如果不是您的目标(例如:您不在乎会发生什么,您不需要导入自身),只需将文件的所有全局变量都放入自己的作用域中,就可以使用

  • 问题内容: 我试图使我的git仓库pip可安装。为此,我正在重组存储库以遵循正确的约定。通过查看其他存储库,我的理解是,我应该将所有源代码放在与存储库名称同名的程序包中。例如,如果调用了我的存储库,则源代码将全部放入一个也称为的包中。 我的存储库中带有连字符以提高可读性:例如。因此,如果我想为其包装一个具有相同名称的包装,则其中也将带有连字符。在本教程中,它对python软件包名称说“不要使用连字

  • 问题内容: 我正在使用jq,但json标记中包含“-”使jq无法编译。我无法逃脱它使其工作。这里的命令 我已经在jq的github上阅读了这篇帖子https://github.com/stedolan/jq/issues/202,但我无法使其正常运行。 这是curl的输出 任何想法? 问题答案: 您需要用方括号和双引号引起来: 使用您给定的输入,它返回: 该JQ手册(开发) - >基本过滤器: 最

  • 问题内容: 如何在shell中重复n次字符?我已经阅读并尝试过此操作,但这不适用于。它引发错误。以下是我使用的确切命令: 原始发布行: 我还尝试通过转义来转义,但在这种情况下,它会重复n次。 问题答案: 这将引发错误: 在以下情况下可以正常工作: 对于其他外壳,请尝试: 问题是期望启动一个选项。在这种情况下,在Unix / POSIX实用程序中很常见,这表明不要有更多选择。

  • 问题内容: 如何从不带破折号的字符串中创建java.util.UUID? 问题答案: Clojure的带 标签文字是对的传递。并且,将其除以“-”并将其转换为两个值。(UUID的格式已标准化为8-4-4-4-12十六进制数字,但“-”实际上仅用于验证和视觉识别。) 直接的解决方案是重新插入“-”并使用。 如果您想要没有正则表达式的内容,则可以使用和。

  • 问题内容: 我有一个JSON数据文件(如下所示),我正在尝试使用jq实用程序查找字段值。 除键名中包含短划线字符的字段外,其他方法都可以正常工作。 如何获取(至少使用)下元素的“ field-2 ”,“ field-three 3 ”或“ field-three.url ”值? 我尝试了以下操作来获取值,但是对于键名中包含短划线的字段,它给了我以下错误。我试图反斜杠字符,但这也无济于事。 命令: