Python LanguageIncompatibilità che si spostano da Python 2 a Python 3


introduzione

A differenza della maggior parte delle lingue, Python supporta due versioni principali. Dal 2008, quando è stato rilasciato Python 3, molti hanno fatto la transizione, mentre molti non l'hanno fatto. Per comprendere entrambi, questa sezione copre le importanti differenze tra Python 2 e Python 3.

Osservazioni

Ci sono attualmente due versioni supportate di Python: 2.7 (Python 2) e 3.6 (Python 3). Inoltre, le versioni 3.3 e 3.4 ricevono aggiornamenti di sicurezza in formato sorgente.

Python 2.7 è retrocompatibile con la maggior parte delle versioni precedenti di Python e può eseguire il codice Python dalla maggior parte delle versioni 1.xe 2.x di Python invariato. È ampiamente disponibile, con una vasta collezione di pacchetti. Viene anche considerato deprecato dagli sviluppatori CPython e riceve solo sicurezza e sviluppo di correzioni di errori. Gli sviluppatori CPython intendono abbandonare questa versione della lingua nel 2020 .

Secondo Python Enhancement Proposal 373 non sono previste versioni future di Python 2 dopo il 25 giugno 2016, ma correzioni di bug e aggiornamenti di sicurezza saranno supportati fino al 2020. (Non specifica quale data esatta nel 2020 sarà la data di tramonto di Python 2.)

Python 3 ha intenzionalmente rotto la compatibilità all'indietro, per affrontare le preoccupazioni che gli sviluppatori linguistici avevano del nucleo della lingua. Python 3 riceve nuovo sviluppo e nuove funzionalità. È la versione della lingua che gli sviluppatori di lingue intendono portare avanti.

Nel tempo intercorso tra la versione iniziale di Python 3.0 e la versione corrente, alcune funzionalità di Python 3 sono state sottoposte a back-port in Python 2.6 e altre parti di Python 3 sono state estese per avere la sintassi compatibile con Python 2. Pertanto è possibile scrivere Python che funzionerà sia su Python 2 che su Python 3, usando future importazioni e moduli speciali (come sei ).

Le importazioni future devono essere all'inizio del modulo:

from __future__ import print_function
# other imports and instructions go after __future__
print('Hello world')

Per ulteriori informazioni sul modulo __future__ , consultare la pagina pertinente nella documentazione di Python .

Lo strumento 2to3 è un programma Python che converte il codice Python 2.x in codice Python 3.x, vedi anche la documentazione di Python .

Il pacchetto six fornisce utility per la compatibilità con Python 2/3:

  • accesso unificato alle librerie rinominate
  • variabili per tipi string / unicode
  • funzioni per il metodo rimosso o rinominato

Un riferimento per le differenze tra Python 2 e Python 3 può essere trovato qui .

Incompatibilità che si spostano da Python 2 a Python 3 Esempi correlati