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

当模块名称中带有'-'破折号或连字符时,如何导入模块?

单于智
2023-03-14
问题内容

我想导入foo-bar.py。这有效:

foobar = __import__("foo-bar")

这不是:

from "foo-bar" import *

我的问题:有什么方法可以使用上述格式,即from "foo-bar" import *导入其中包含的模块-


问题答案:

你不能。 foo-bar不是标识符。将文件重命名为foo_bar.py

编辑:
如果import不是您的目标(例如:您不在乎会发生什么sys.modules,您不需要导入自身),只需将文件的所有全局变量都放入自己的作用域中,就可以使用execfile

# contents of foo-bar.py
baz = 'quux'



>>> execfile('foo-bar.py')
>>> baz
'quux'
>>>


 类似资料:
  • 问题内容: 我有一个名称为dash的现有python模块foo-bar.py 我希望避免更改模块名称,因为该模块是共享的,我将不得不追踪所有使用该模块的位置,以便我的特殊情况能够起作用。 有没有办法加载名称包含通常被禁止的“-”的模块? (我确实知道这不是最佳实践。但是,在这种情况下,我宁愿不要重新设计和测试更多的应用程序。而且,我不认为我的公司老板会赞成我花时间实施这样的变化。) 问题答案: 您

  • 问题内容: 我正在编写一个小脚本,该脚本从目录获取文件名,并将其传递给另一个模块,然后该模块导入文件。 因此流程类似于1)获取模块名称(将其存储在变量中)2)将此变量名称传递给模块3)导入名称存储在变量名称中的模块 我的代码就像 问题在于,当它到达import语句时,它将modulename读取为真实的模块名称,而不是存储在此变量中的值。我不确定这在python中如何工作,解决这个问题的任何帮助都

  • 问题内容: 我正在编写一个以命令作为参数的Python应用程序,例如: 我希望应用程序是可扩展的,也就是说,能够添加实现新命令的新模块而不必更改主应用程序源。这棵树看起来像: 因此,我希望应用程序在运行时找到可用的命令模块并执行相应的命令模块。 Python定义了函数,该函数使用一个字符串作为模块名称: 该函数导入模块名称,可能使用给定的全局变量和局部变量来确定如何在包上下文中解释该名称。from

  • 我使用python unittest框架做集成测试。为了消除混淆,我想以“集成测试”的方式继承TestCase类。TestCase”而不是“unittest”。TestCase". 此外,如果我也能做“import integrationtest”而不是“import unittest”,那就更好了,类似于“unittest.main()”,最好用“integrationtest.main()”来

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

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