(重要提示:請參閱下面更新。)的Python:通過功能導入到主命名空間
我試圖寫一個函數,import_something
,這將重要的某些模塊。 (這個問題對於哪個問題無關緊要。)問題是,我希望這些模塊能夠在函數被調用的級別導入。例如:
import_something() # Let's say this imports my_module
my_module.do_stuff() #
這可能嗎?
更新:
對不起,我原來的措辭和示例進行了誤導。我會盡力解釋我的整個問題。我擁有的是一個包,裏面有一些模塊和包。在其__init__.py
我想導入所有的模塊和包。因此,在程序的其他地方,我導入整個包,並遍歷它所導入的模塊/包。
(爲什麼?包名爲crunchers
,和裏面有定義各種統計員,像CruncherThread
,CruncherProcess
,並在未來或許MicroThreadCruncher
。我希望統計員包自動都被放置在統計員在後面的程序中,當我使用crunchers
時,我知道它可以確切地說明我已經定義了哪些crunchers。)
我知道如果我完全避免使用函數,並且執行main級別爲for
循環等。但它很醜,我想看看我能否避免它。
如果還有什麼不清楚的地方,請在評論中提問。
爲什麼繞過翻譯的進口邏輯是什麼? – 2009-11-03 17:39:01
@ THC4k:我使用自定義函數導入的原因之一是我不知道我正在導入的模塊的名稱,我希望它以自己的名稱導入。 – 2009-11-03 17:42:25
例如,如果你想在運行期間決定使用哪個模板引擎(mako /獵豹/ etc),你需要'__import__'。 – 2009-11-03 17:45:17