如何使用__import__导入*

Dav*_*mer 17 python import

执行以下操作的最佳方法是什么,__import__以便我可以动态指定模块?

from module import *
Run Code Online (Sandbox Code Playgroud)

Dav*_*mer 16

我找到的唯一方法:

module = __import__(module, globals(), locals(), ['*'])
for k in dir(module):
    locals()[k] = getattr(module, k)
Run Code Online (Sandbox Code Playgroud)

  • 因为这是解决问题的唯一方法. (5认同)
  • [不应修改此词典的内容; 更改可能不会影响解释器使用的本地和自由变量的值.](http://docs.python.org/2.7/library/functions.html#locals) (2认同)

Mic*_*zek 5

这是同样作为一个正常的进口通话,你只要把它传递包含列表'*'fromlist

moduleName = "foo"
__import__(moduleName, globals(), locals(), ['*'])
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 5

__import__()从不向本地范围添加任何内容。您将必须浏览返回的模块,根据需要访问其属性。