python importlib模块:
python将importlib作为标准库提供。它旨在提供python import语法和( __import __ 函数)的实现。
动态导入:
importlib模块支持传递字符串来导入模块。
我们在模块里提供了相同的接口,通过打印他们自身的名字来区分。我们分别创建了foo.py 和 bar.py,代码如下:
def main():
print(__name__)
现在我们仅需要使用importlib导入他们。确保该代码刚才创建的两个文件在相同目录下。
import importlib
def dynamic_import(module):
return importlib.import_module(module)
if __name__ == "__main__":
module = dynamic_import('foo')
module.main()
module2 = dynamic_import('bar')
module2.main()
这里我们导入importlib模块,并创建了一个非常简单的函数dynamic_import。这个函数就直接调用了importlib的import_module方法,并将要导入的模块字符串传递作为参数,最后返回其结果。然后在诸如港口我们分别调用了各自的main方法,将打印出各自的name。
$ python3 importer.py
foo
bar
也许你很少会代码这么做,不过在你需要试用字符串作为导入路径的话,那么importlib就有用途了。