如何在Python中动态导入?

use*_*391 3 python

我是Python的新手,任何人都可以让我知道如何在python脚本中执行以下两个导入,然后是另一行,而我在每个循环中都会变更?(以下三行位于"for"循环中,其计数器为"i")

import Test_include_i
from Test_include_i import*
model = Test_include_i.aDefinedFunction
Run Code Online (Sandbox Code Playgroud)

非常感谢你 :)

fil*_*mor 6

这不是一个好主意,但这是它的实现:

from importlib import import_module # Awesome line! :)

for i in range(1000):
    test_include = import_module("Test_include_%s" % i)
    model = test_include.aDefinedFunction
Run Code Online (Sandbox Code Playgroud)

关于提供的方法之间的差异:

  • __import__是处理from bla import blubbimport bla语句的低级接口.它的直接用途是根据现在不鼓励的文件.
  • importlib.import_module是一种便利包装__import__,是首选.导入的模块将被记录下来sys.modules并因此被缓存.如果您在会话期间更改了代码并想要使用新版本,则必须使用显式重新加载它imp.reload.
  • imp.load_module更接近内部,并将始终为您加载模块的最新版本,即如果它已加载load_module相当于imp.reload模块上的调用.但是要使用此函数,您必须提供所有4个参数,这些参数基本上都是imp.find_module返回的.