ad esempio Jython è alla versione 2.5.1, implica una fedeltà parallela alla sintassi cpython quando era alla versione 2.5.1?I numeri di versione dell'implementazione python implicano che forniscono la stessa sintassi?
risposta
Questo è corretto o molto vicino. Jython e IronPython hanno modificato il loro schema di numerazione in modo che corrisponda alla versione di CPython le cui caratteristiche sono più strettamente implementate.
Generalmente sì, ma tecnicamente nulla impedisce l'implementazione alternativa dalla scelta dei numeri di versione desiderati.
È anche importante notare che solo perché Jython 2.5.1 è progettato per corrispondere a CPython 2.5.1, non significa che si comporteranno esattamente nello stesso modo o saranno del tutto compatibili - si consideri i moduli basati su C , per esempio, e le strutture per ottenere il bytecode sottostante.
La mancanza di qualsiasi corpo standard reale o specifica formale per il linguaggio Python significa che non ci sono regole chiare su ciò che costituisce "Python" e che cosa è "implementazione definita".
La sintassi (e set di funzionalità) sono controllati rigorosamente dai primi due numeri - ogni 2.5.*
è la pretesa di implementare la stessa sintassi e set di funzionalità (in termini di definizione del linguaggio, non aspetti manuale di lingua di riferimento lascia esplicitamente l'implementazione: ad esempio, sia Jython che IronPython hanno 'buh'
significa "una stringa letterale unicode", mentre CPython significa "una stringa letterale letterale"). Un valore superiore a *
, all'interno di qualsiasi linea di implementazione, implica correzioni di bug e/o ottimizzazioni che non influiscono sulla sintassi e sulle funzionalità (eccetto che per correggere i bug di implementazione che si erano verificati in alcuni casi inferiori) *
.
Quindi, Jython 2.5.1
può essere sostituito da qualsiasi CPython 2.5.x
per qualsiasi valore di x
- e sostiene di essere migliore di Jython 2.5
(IMHO shd essere 2.5.0
ma il trascinamento .0
non viene utilizzato in pratica), anche se non così buono come Jython 2.5.2
se quest'ultimo esiste. Ma lo è non tentativo di emulare i bug in CPython 2.5.1
che sono stati corretti in CPython 2.5.2
o successivi: senza dubbio ogni implementazione ha i propri bug, e nessuno dichiara compatibilità bug-per-bug ;-).
- 1. C# Eccezioni che non forniscono i numeri di riga
- 2. In che modo Flyway ordina i numeri di versione?
- 3. Python che calcola i numeri catalani
- 4. Specificare i numeri di versione in Bower
- 5. Come conoscere la versione di pip stessa
- 6. Esistono generiche librerie Python che forniscono funzionalità di 'segnali' (eventi) come i segnali di Django?
- 7. numeri di versione msi
- 8. Cosa significano i numeri che iniziano con 0 in python?
- 9. Graphics.MeasureCharacterRange che forniscono calcoli di dimensioni errate
- 10. strano errore di sintassi in Python, versione 2.6 e 3.1
- 11. Quali sono i vari numeri di versione AccuRev?
- 12. Esistono librerie di go che forniscono funzionalità di array associativo?
- 13. Python, Ruby, Haskell - Forniscono un vero multithreading?
- 14. script di shell che controllano la versione python
- 15. C++ - default_random_engine crea sempre la stessa serie di numeri
- 16. python panda che sostituiscono stringhe nel dataframe con i numeri
- 17. Numeri di versione per CakePHP
- 18. Cosa significano i numeri di versione di Erlang?
- 19. Razionale dietro la sintassi preferita da Python
- 20. È possibile modificare/riordinare manualmente i numeri di revisione (la topologia fornita rimane la stessa)?
- 21. Python - La grammatica per 3.0 è la stessa di 3.3?
- 22. Confrontando due numeri di versione
- 23. Come posso confrontare i numeri di versione arbitrari?
- 24. Che cos'è la "sintassi 3D"?
- 25. sintassi della versione di dipendenza Cargo
- 26. I diversi produttori di ARM forniscono diversi set di istruzioni?
- 27. Django e Baffi utilizzano la stessa sintassi per il modello
- 28. La versione iterativa e ricorsiva ha la stessa complessità?
- 29. Sintassi pickle Python
- 30. Numeri di versione float, decimal o double