我是Python的新手,任何人都可以让我知道如何在python脚本中执行以下两个导入,然后是另一行,而我在每个循环中都会更改? (以下三行位于“for”循环中,其计数器为“i”)
import Test_include_i
from Test_include_i import*
model = Test_include_i.aDefinedFunction
非常感谢:)
答案 0 :(得分: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
关于所提供方法之间的差异:
__import__
是处理from bla import blubb
和import bla
语句的低级接口。它的直接用途是根据现在不鼓励的文件。importlib.import_module
是__import__
的便利包装,是首选。导入的模块将记录在sys.modules
中,因此将被缓存。如果您在会话期间更改了代码并想要使用新版本,则必须使用imp.reload
显式重新加载。imp.load_module
更接近内部,并将始终为您加载模块的最新版本,即如果已加载load_module
相当于imp.reload
调用模块。但是要使用此函数,您必须提供所有4个参数,基本上是imp.find_module
返回的参数。答案 1 :(得分:1)
您需要使用__import__
函数,或许importlib,但您应该考虑这是否是您真正想要做的。也许解释一下你想要实现的目标,并且可能会有更好的方法。
答案 2 :(得分:0)
您可以使用imp.load_module()
,它接受字符串作为模块名称。见http://docs.python.org/2/library/imp.html#imp.load_module