背景
众所周知,numba 的 jit 功能可以显著提高 python 的运行速度。
然而,numba 对于程序有一些特定的要求,比如不能用 list 之类的,而且似乎也不能直接放在类(class)里。
要想在类中加速的话,有两种方法:
- 官方文档给出一种方法 Compiling python classes with @jitclass
比较麻烦,需要给出类中成员,而且类中如果有 list 之类的东西就会失效 - 在类的外部编写函数,类中调用类外的函数,也即本文内容。
参考 How do I use numba on a member function of a class?
解决方法
对于以下代码(没有 jit 修饰):
class A():
def __init__(self):
self.a = 1
self.n = 10000000
def