当x是一个字符串时,如何使用`from x import *`

7 浏览
0 Comments

当x是一个字符串时,如何使用`from x import *`

我正在制作一个程序,用户可以保存文件,加载文件,并按照他们想要的方式命名文件。\n如何动态导入该模块的所有属性?\n例如,类似下面的伪代码:\n

module_name = input()
from module_name import *

\n假设module_name以\".py\"结尾。\n我正在使用Python 3.5版本。

0
0 Comments

在上述代码中,通过使用importlib.import_module('math')从字符串中加载math模块,并使用其中的一些函数。然后,通过globals().update(my_module.__dict__)my_module的属性添加到全局命名空间中。最后,打印出全局命名空间的内容以及调用sin(pi/2)函数。

这种做法听起来像是个糟糕的想法,因为from x import *将会导入所有内容,并有可能覆盖本地属性。此外,很可能有更清晰的方式通过使用字典来实现你的目标。

0