2016-03-02 70 views
2

我有一個Python數學模塊,它提供了一些相對簡單的數學函數,並提供了一些非常複雜的模型,這些模塊依賴於需要一段時間才能導入的另一個(非常大的)模塊。導入時應如何將選項傳遞給Python模塊?

對於一些小腳本,我只想使用我的數學模塊的小函數和一些大腳本,我想使用它提供的複雜函數(依賴於大模塊)。

我可以將這個大模塊的導入添加到我的數學模塊中的複雜函數中,以便只在需要時導入大模塊。這對於不需要該功能的小腳本來說可以很好地工作。然而,那麼大腳本將最終導入大模塊多次(並且記住它需要一小段時間才能導入),所以這不太好。

是否有一些明智的方法來構建我的數學模塊,以便能夠以我想要的方式處理小腳本和大腳本,或者是否有一種方法可以傳遞給模塊,而不需要額外的複雜性如:import supermathematicsmodule(version = "lite"))。

+0

在正常情況下,多次導入不會導致模塊被加載和編譯多次。 Python記得。 – cdarke

回答

0

也許你正在反思這個?我只是將這些功能分成兩個模塊,比如bigmath和littlemath。爲了方便起見,你可以把from littlemath import *這樣的東西放在bigmath中,這樣所有的功能都可以使用。

另一種選擇是在一個私人模塊和導入,並將其添加到公共模塊命名空間的功能複雜的功能,所以有你會做所有可用的功能:

import mymath 
mymath.import_complicated_functions() 

但這將需要一些技巧(=潛在的問題來源),我不認爲這實際上是一種改進。

相關問題