Pregunta

¿El código producido por Cython siempre es tan correcto como el código de Python del que fue producido?

Puede ayudar a otros lectores a abordar el uso de declaraciones de tipo estático de Cython y otras características de Cython (si las hay), aunque solo estoy interesado en el caso de crear archivos Cython renombrando los módulos de Python a *.pyx.

Solo me importa el subconjunto de Python cubierto por Cython.

¿Fue útil?

Solución

Generalmente, sí. Por supuesto que hay insectos (Muchos giran en torno a la expansión del subconjunto de Python compatible, sin embargo, los errores que realmente hacen que el código C generado sea incorrecto es relativamente raro), y hay algunos necesarios advertencias (Aunque parece que solo un elemento en esa lista corta se desvía de la semántica de Python).

Cuando agrega tipos estáticos en modo Python puro, hay circunstancias en las que hace la diferencia si se compila como Cython o se ejecuta como código Python. Unsigned Integers viene a la mente (ejemplo: como se menciona en un enlace anterior, -n envolverá si n no está firmado y range(-n, n) está, por lo tanto, vacío), así como el desbordamiento entero (Python promueve intS (C longs) a longS (enteros de precisión de la precisión de la abrazadera)).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top