Gli hint del tipo ora sono disponibili nella versione Python 3.5. Nella specifica (PEP 484) gli obiettivi (ei non-obiettivi) sono esposti chiaramente:Uso dei suggerimenti tipo per tradurre Python in Cython
Motivazioni e obiettivi
Questa PEP mira a fornire una sintassi standard per annotazioni di tipo, aprendo codice Python per semplificare l'analisi statica e il refactoring, il potenziale controllo del tipo di runtime e (forse, in alcuni contesti) la generazione del codice utilizzando le informazioni sul tipo. [...]
Di questi obiettivi, l'analisi statica è la più importante.
non-obiettivi
utilizzando il tipo di suggerimenti per ottimizzazioni delle prestazioni è lasciata come esercizio per il lettore.
D'altra parte, Cython ha utilizzato per un lungo periodo di sintassi statico per migliorare le prestazioni. Di solito, le persone riscrivono alcuni pezzi del loro codice con la sintassi di Cython, li compila e quindi li reimporta come moduli indipendenti. È un lavoro doloroso fare tutto ciò su una grande base di codice. Ma la cosa peggiore è che anche se segui correttamente tutti i passaggi precedenti, non hai alcuna garanzia di un miglioramento reale (a causa di problemi di compatibilità che potrebbero essere causati se stai usando alcuni moduli).
Sarebbe un compito difficile scrivere uno strumento che utilizza questo nuovo tipo allude cose sparse nel codice per tradurli automaticamente Cython sintassi ed eventualmente fare il resto del lavoro (compilarli in moduli e importare tutti loro indietro)? Sarebbe quindi possibile condividere la stessa sintassi del linguaggio in tutto il codice base.
In teoria, è possibile scrivere uno strumento del genere, ma non sono sicuro che valga la pena (in termini di complessità per scriverlo e il miglioramento reale che sarebbe il rendimento).
Grazie.
Quando hai usato 'cython', quanto del codice Python hai convertito? Pensavo che l'ideale fosse concentrarsi su un sottoinsieme in cui l'accelerazione conta e lasciare il resto in Python. Oppure usa 'cython' come bridge per il codice C++/Fortran esistente. – hpaulj
Sono d'accordo con te in parte. Ma sarebbe meglio, credo, avere una sintassi unificata. Ma va bene, come ha detto @hpaulj, il mio argomento non è per Stackoverflow. Scusate. – GustavoIP