3

I'm totally new with Python,can anyone please let me know how I can do the following two imports in a python script followed by the other line WHILE i IS BEING CHANGED IN EACH LOOP? (The following three lines are in a "for" loop whose counter is "i")

import Test_include_i
from Test_include_i import*
model = Test_include_i.aDefinedFunction

Thank you very much :)

4

3 回答 3

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返回的。
于 2013-07-24T11:45:45.873 回答
1

您需要使用该__import__函数,也许还有importlib,尽管您应该考虑这是否是您真正想要做的。也许解释一下您要达到的目标,并且可能会有更好的方法。

于 2013-07-24T11:42:45.960 回答
0

您可以使用imp.load_module(),它接受一个字符串作为模块名称。请参阅http://docs.python.org/2/library/imp.html#imp.load_module

于 2013-07-24T11:46:25.187 回答