【发布时间】:2014-01-30 18:59:27
【问题描述】:
我可以使用以下代码将字符串更改为变量,然后调用之前导入的库的函数。
>>> import sys
>>> x = 'sys'
>>> globals()[x]
<module 'sys' (built-in)>
>>> globals()[x].__doc__
如果不首先导入模块,我有一个字符串变量,但我不能使用与 import 相同的 globals()[var] 语法:
>>> y = 'os'
>>> globals()[y]
<module 'os' from '/usr/lib/python2.7/os.pyc'>
>>> import globals()[y]
File "<stdin>", line 1
import globals()[y]
^
SyntaxError: invalid syntax
>>> z = globals()[y]
>>> import z
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named z
是否可以进行字符串输入,并导入与字符串输入同名的库?如果可以,怎么做?
@ndpu 和@paulobu 已回答__import__() 允许将字符串作为变量访问库。但是使用相同的变量名而不是使用库的替代名称有问题吗?例如:
>>> x = 'sys'
>>> sys = __import__(x)
【问题讨论】:
-
我不这么认为,这也可能是避免混淆的好方法。我会更新我的答案。
标签: python syntax import globals