這是我的CS家庭作業 - Wesley Chun的「核心Python編程」中的練習12-6。我們的目標是模擬擴展導入功能,例如import ... as
沒有實現。這是我的嘗試,這兩者產生的錯誤:使用Python中的函數進行擴展導入
def importAs(name):
eval('import '+name)
ret = eval(name)
eval('del '+name)
return ret
foo = importAs('os')
這將產生SyntaxError: invalid syntax
在File "<string>", line 1
import os
,而:
def importAs(name):
import name
ret = name
del name
return ret
foo = importAs(os)
產生一個NameError: name 'os' is not defined
在foo = importAs(os)
。
有人可以解釋原因和解決方案嗎?
編輯:請保持2.X只:)
可能重複(http://stackoverflow.com/questions/17136772/eval-to-import-a-module) – 2014-10-04 00:44:32