2017-02-19 110 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