【发布时间】:2014-10-06 08:09:05
【问题描述】:
我正在使用rpy2 通过此模块提供的importr 函数在python 中包装R 库(Python 中的模块)。
问题是 importr 在运行时可能非常昂贵(调用时它会做很多事情),我希望它只调用一次(对于每个 importr调用我有几个函数使用它的结果,同时我不能把所有东西都放在模块的顶部,否则会显着减慢导入时间)。
目前,对于我使用 importr 的 每个 模块,我这样做:
myrlib = None
def do_stuff_with_r(param):
global myrlib
if myrlib is None:
myrlib = importr(myrlib)
我想概括一下,因为我在许多不同的模块中执行这种操作,因此这些行都是重复的。
但是我不确定如何执行此操作:this solution 在第一次调用后返回 None,这并不是我真正想做的。假设这是可行的,我如何确保特定参数的 importr() 只被调用一次?
【问题讨论】:
-
注意:Python
import语句使用sys.modules即,如果myrlib是 Python 模块(以您喜欢的方式实现(纯 Python、C、Fortran 等)),则可以多次导入相同的模块很快。
标签: python function python-3.x