我只是想知道是否可以在jit函数中使用函数列表甚至函数字典。
例如
def func1():
pass
def func2():
pass
list_ = [func1, func2]
@njit
def jit_func(list_):
# do something with list of functions
在实施类似方法时遇到麻烦,因此想知道是否有可能/是否有解决方法。
答案 0 :(得分:0)
您可以在基本函数上使用装饰器,并使用lambda或通用f函数运行函数列表。 如果要运行的功能很多,则可以使用Pool.map并行运行这些功能,并将所有输出收集为结果列表。
from multiprocessing import Pool
@njit
def func1():
return 'func1'
@njit
def func2():
return 'func2'
def f(fun):
'''
Run a function.
'''
return fun()
list_ = [func1, func2]
with Pool(2) as p:
r = p.map(f, list_)
>>>r
['func1', 'func2']