2017-02-19 53 views
1

我是新的python和PyCharm。下面的代码工作在Python控制台,在数学包列出的功能: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 

你答案非常感谢!

+0

它抛出'NameError'两个Python 2和python3控制台。 – gzc

回答

1

This so answer explains what does eval do

eval解释字符串作为代码。在你的情况下,eval将'数学'转换为数学并搜索名为数学的变量。

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

要查找函数的数学模块,保存可变模块路径,然后应用dir方法importlib.import_module(st)返回ST目录路径

+0

非常感谢,它有帮助! –

+0

@ Shu-Yen如果能帮到你,请加快答案。 – sid