Как определить инициализированный C-массив в Pyrex?
-
20-09-2019 - |
Вопрос
Я хочу определить инициализированный C-массив в Pyrex, напримерэквивалент:
unsigned char a[8] = {0,1,2,3,4,5,6,7};
Что будет эквивалентно в Pyrex?
Просто массив - это
cdef unsigned char a[8]
Но как я могу инициализировать его с помощью моих значений?
Решение
В Китон, Преемник Pyrex, эта функция была добавлена более года назад, чтобы исправить это запрос функции, так , например , в Cython сейчас работает следующее:
cdef double a[] = [0.5, 0.3, 0.1, 0.1]
Однако разработка Pyrex продвигается гораздо медленнее (именно поэтому Cython был разветвлен много лет назад разработчиками, стремящимися к более быстрым действиям), поэтому я сомневаюсь, что он перенял эту функцию (хотя вы можете попробовать, особенно.если вы используете самый последний выпуск из Pyrex, 0.9.8.6).
Если Pyrex не предоставляет вам тех функций, которые вы хотите, могу я предложить вместо этого перейти на Cython?Большая часть кода Pyrex должна просто плавно перекомпилироваться в Cython, и таким образом вы получаете дополнительные функции.