How to import * with __import__

2019-03-17 22:26发布

问题:

What's the best approach to execute the following using __import__ so that I may dynamically specify the module?

from module import *

回答1:

It's the same as a normal from-import call, you just pass it a list containing '*' for the fromlist:

moduleName = "foo"
__import__(moduleName, globals(), locals(), ['*'])


回答2:

The only way I found:

module = __import__(module, globals(), locals(), ['*'])
for k in dir(module):
    locals()[k] = getattr(module, k)


回答3:

__import__() never adds anything to the local scope. You will have to go through the returned module, accessing its attributes as desired.



标签: python import