Domanda

Il codice prodotto da Cython è sempre corretto quanto il codice Python da cui è stato prodotto?

Può aiutare gli altri lettori ad affrontare l'uso di dichiarazioni di tipo statico di Cython e altre funzionalità di Cython (se presenti), anche se sono interessato solo al caso della creazione di file cython rinominando i moduli Python a *.pyx.

Mi interessa solo il sottoinsieme di Python coperto da Cython.

È stato utile?

Soluzione

Generalmente, sì. Ovviamente ci sono bug (Molti ruotano attorno all'espansione del sottoinsieme di Python supportato, tuttavia, i bug che effettivamente rendono il codice C generato errati sono relativamente rari) e ci sono alcuni necessari avvertimenti (Anche se sembra che solo un elemento su quel breve elenco devia dalla semantica di Python).

Quando si aggiungono tipi statici in modalità Python pura, ci sono circostanze in cui fa la differenza se viene compilato come cython o funzionare come codice Python. I numeri interi non firmati mi vengono in mente (esempio: come menzionato in un link sopra, -n si avvolgerà se n non è firmato e range(-n, n) è quindi vuoto), così come il trabocco intero (promuove Python ints (c longs) a longS (numeri interi a radificazione aoditaria)).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top