Quale era la necessità di introdurre Python 3 quando avevamo già Python 2 [duplicato]

2

Sto ancora imparando Python e ho iniziato con Python 3. Questa domanda non è Python 2 vs 3 o la differenza tra loro come print () è una funzione e non un linguaggio costruttivo e 3/2 = 1.5

La mia domanda è anche se è ancora python, quale era la necessità di introdurre qualcosa di nuovo che non è compatibile con le versioni precedenti, quando -

  1. La sintassi è la stessa
  2. La filosofia linguistica è la stessa (importa questo)

Modifica - Diciamo che tutti i pacchetti popolari sono portati su Python 3, vuol dire che non abbiamo più bisogno di Python 2

    
posta Mark Evans 06.12.2013 - 14:24
fonte

2 risposte

6

Python 3 è stato introdotto per apportare miglioramenti su python 2, ma penso che quello che chiedi sia il motivo per cui non sono compatibili con le versioni precedenti. Fondamentalmente, gli sviluppatori hanno deliberatamente creato python 3 non retrocompatibile, per due ragioni principali:

  1. Prima di tutto, volevano modificare alcune cose integrali in python 2, e mentre le differenze sembravano piccole, i miglioramenti che avevano apportato non si sarebbero combinati bene con la struttura esistente. Ad esempio, la modifica alla sintassi di "stampa" che hai citato è stata fatta perché la stampa in realtà sta solo chiamando una funzione, e in realtà non è una parola chiave nello stesso modo in cui qualcosa come "if" o "while" è.

  2. L'altro motivo per cui la compatibilità a ritroso è stata interrotta è stato quello di mantenere separati Python 2 e 3. Alcune persone, incluso me, preferiscono python 2.7 su python 3. Poichè python 3 ha apportato modifiche maggiori al linguaggio, gli sviluppatori volevano mantenere le due versioni quasi come lingue separate (se abbastanza simili).

A tutti gli effetti, se usi python 2.7, l'unica differenza che dovrebbe davvero interessarti è la modifica in "print".

    
risposta data 09.12.2013 - 01:49
fonte
4

In una conversazione ho sentito Guido dire qualcosa del genere:

You do not want your library in the Python standard library. Once it is there you can not change the API if you made any mistake.

Quindi una ragione che voglio aggiungere è:

  • Le modifiche incompatibili all'API possono essere apportate solo tra le versioni di Python principali.

Esempi:

import SimpleHTTPServer
import CGIHTTPServer

modificato in

import http.server
    
risposta data 09.12.2013 - 16:43
fonte

Leggi altre domande sui tag