Как мне создать изменяемый массив объектов Python фиксированной длины в Cython?

Мне нужен массив объектов python, который будет использоваться при создании структуры данных trie. Мне нужна структура, которая будет фиксированной длины, как кортеж, и изменяемой, как список. Я не хочу использовать список, потому что я хочу быть в состоянии убедиться, что список имеет точно правильный размер (если он начнет выделять дополнительные элементы, накладные расходы на память могут увеличиться очень быстро, так как trie становится больше). Есть ли способ сделать это? Я пробовал создать массив объектов:

cdef class TrieNode:
    cdef object members[32]

... но это дало ошибку:

Error compiling Cython file:
------------------------------------------------------------
...
cdef class TrieNode:
    cdef object members[32]
                      ^
------------------------------------------------------------

/Users/jason/src/pysistence/source/pysistence/trie.pyx:2:23: Array element cannot be a Python object

Как лучше всего делать то, что я пытаюсь сделать?

7
задан Jason Baker 28 January 2011 в 23:32
поделиться