Bir tray veri yapısı oluştururken kullanılacak bir dizi python nesnesine ihtiyacım var. Bir tuple gibi sabit uzunlukta olacak ve bir liste gibi değişebilen bir yapıya ihtiyacım var. Listeyi kullanmak istemiyorum çünkü listenin tam olarak doğru boyutta olmasını sağlamak istiyorum (eğer ekstra elemanlar tahsis etmeye başlarsa, bellek yükü daha büyük büyürken çok daha hızlı eklenebilir). Bunu yapmanın bir yolu var mı? Ben nesneleri dizisini oluşturma çalıştı:Cython'da sabit uzunlukta, değiştirilebilir bir dizi Python nesnesi nasıl oluşturabilirim?
cdef class TrieNode:
cdef object members[32]
... ama bu bir hata verdi:
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
benim yapmaya çalıştığım şey bu yapmanın en iyi yolu nedir?
Benim tercihim, 'assert 0 <= idx
Üzgünüm, ama bu aradığım şeyin sağ top parkında bile değil. İki şey: 1) Bir C uzantısı oluşturmak için bunu cython'da yapmanın bir yolunu arıyordum. 2) Listeyi tam olarak 32 unsuru almaya zorlamak için hiçbir yolum yok. Bu 32 bir 'len ', ancak daha kolay ekleme yapmak için genellikle daha fazla alan ayrılmıştır. –