2016-03-02 26 views
2

我有一个Python数学模块,它提供了一些相对简单的数学函数,并提供了一些非常复杂的模型,这些模块依赖于需要一段时间才能导入的另一个(非常大的)模块。导入时应如何将选项传递给Python模块?

对于一些小脚本,我只想使用我的数学模块的小函数和一些大脚本,我想使用它提供的复杂函数(依赖于大模块)。

我可以将这个大模块的导入添加到我的数学模块中的复杂函数中,以便只在需要时导入大模块。这对于不需要该功能的小脚本来说可以很好地工作。然而,那么大脚本将最终导入大模块多次(并且记住它需要一小段时间才能导入),所以这不太好。

是否有一些明智的方法来构建我的数学模块,以便能够以我想要的方式处理小脚本和大脚本,或者是否有一种方法可以传递给模块,而不需要额外的复杂性如:import supermathematicsmodule(version = "lite"))。

+0

在正常情况下,多次导入不会导致模块被加载和编译多次。 Python记得。 – cdarke

回答

0

也许你正在反思这个?我只是将这些功能分成两个模块,比如bigmath和littlemath。为了方便起见,你可以把from littlemath import *这样的东西放在bigmath中,这样所有的功能都可以使用。

另一种选择是在一个私人模块和导入,并将其添加到公共模块命名空间的功能复杂的功能,所以有你会做所有可用的功能:

import mymath 
mymath.import_complicated_functions() 

但这将需要一些技巧(=潜在的问题来源),我不认为这实际上是一种改进。

相关问题