python控制台和编辑器控制台中的不同行为

时间:2017-02-19 08:29:54

标签: python

我是python和PyCharm的新手。以下代码在python控制台中工作,列出了数学包中的函数:

import importlib
st = 'math'
importlib.import_module(st)
dir(eval(st))

但是,如果编辑器窗口中显示相同的代码段并运行,则以下消息显示:

Traceback (most recent call last):
  File "C:/Users/sywan/PycharmProjects/test/test.py", line 4, in <module>
    dir(eval(st))
  File "<string>", line 1, in <module>
NameError: name 'math' is not defined

非常感谢您的回答!

1 个答案:

答案 0 :(得分:1)

This so answer explains what does eval do

eval将字符串解释为代码。在你的情况下,eval convert&#39; math&#39;进入数学并搜索名为math的变量。

import importlib
st = 'math'
dir_path = importlib.import_module(st)
dir(dir_path) 

要在数学模块中查找函数,请将模块路径保存在变量中,然后将dir方法应用为importlib.import_module(st)返回st目录路径