Python: 动态导入模块和对象

Python: Dynamically import modules and objects

我想通过以下变量动态导入一些 class:

classes = ['AaaBc', 'AccsAs', 'Asswwqq']
for class in classes:
    from file.models import class

我该怎么做?

使用__import__

spam = __import__('spam', globals(), locals(), [], 0)

语句 import spam.ham 导致此调用:

spam = __import__('spam.ham', globals(), locals(), [], 0)

请注意 __import__() returns 此处的顶级模块,因为这是通过 import 语句绑定到名称的对象。

另一方面,语句 from spam.ham import eggs, sausage as saus 导致:

_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
eggs = _temp.eggs
saus = _temp.sausage

参见:https://docs.python.org/3/library/functions.html#__import__