8

我想使用 Cython 编译一个 Python 模块,该模块与一个字典一起工作,该字典的所有键都是类型的,比如说,整数(或无论其他静态和已知类型),以及 unicode 类型的所有值(或其他静态和已知)。

现在,为了加快速度,我可以声明

cdef dict Dict

并且

cdef int k
cdef unicode v

但是,我可以对整个“dict int->unicode”结构进行静态声明吗?

谢谢,

4

1 回答 1

10

我认为简短的回答是否定的。Cython仍在使用内置的Python字典。如果您将对象声明为dict ,它可以利用一些优化,但最终dict必须能够存储不同类型的对象,因此您不能在编译时指定值类型。但是您应该首先检查以确保这是一个瓶颈。Python字典相当不错。

于 2013-10-25T07:53:11.773 回答