Учитывая некоторый глобальный немутантный объект некоторого типа, неизвестного numba:
from types import SimpleNamespace
a = SimpleNamespace(b=2)
Я хотел бы иметь возможность ссылаться на член этого объекта как константу времени компиляции в пределах jitedфункция, что-то вроде этого:
@numba.njit
def foo():
# return a.b # fails, because numba tries to evaluate at runtime
return numba.mark_this_as_constant(a.b)
Существует ли mark_this_as_constant
в Numba уже под другим именем? Можно ли написать это самому, возможно, с пользовательским типом?
Я могу получить то, что хочу сегодня:
def foo(a_b=a.b):
@numba.njit
def foo():
return a_b
return foo
foo = foo()
, но это довольно грубо, и требует, чтобы я перечислял каждыйзакрытие сверху, а не в месте использования.