我想使用Cython编译一个Python模块,该模块使用一个字典,其中所有键都是类型,比如整数(或者无论其他静态和已知类型),以及unicode类型的所有值(或其他静态和已知)。
现在,为了加快速度,我可以宣布
cdef dict Dict
以及
cdef int k
cdef unicode v
但是,我可以对整个“dict int-> unicode”结构进行静态声明吗?
谢谢,
答案 0 :(得分:7)
我认为简短的回答是否定的。 Cython 仍在使用内置的 Python 字典。如果将对象声明为 dict ,它可以利用一些优化,但最终 dict 必须能够存储不同类型的对象,因此您无法指定编译时 key 或 value 类型。但是你应该先检查一下,确保这是一个瓶颈。 Python 词典相当不错。