我有一个名称为dash-的现有python模块foo-bar.py
共享模块时,我更希望避免更改模块名称,并且必须逐一删除所有使用该模块的位置,以便我的特殊情况能够正常工作。
有没有办法加载名称中通常包含禁止的'-'的模块?
(我确实知道这不是最佳实践。但是,在这种情况下,我宁愿不要重新设计和测试更大的应用程序集。而且我也不认为我的公司老板会赞成我花时间实施这样的变化。)
Answers:
您可以使用来实现__import__()
。例如:
foobar = __import__("foo-bar")
但是,您实际上应该重命名模块。这样,当模块的文件名与程序中使用的标识符不同时,您可以避免混淆。
我知道这个问题已经得到了问询者的满意,但是这是另一个我认为有使用价值的问题__import__()
。
import importlib
mod = importlib.import_module("path.to.my-module")
# mod.yourmethod()
根据文档:
"This provides an implementation of import which is portable to any
Python interpreter. This also provides an implementation which is
easier to comprehend than one implemented in a programming language
other than Python."
Python 2.7
仅+
foo-bar
用foobar
或替换所有?那有多难?