Quali sono i problemi che risolvono le nuove funzionalità di python 3? [chiuso]

18

Le nuove funzionalità di Python 3 dicono:

we’re mostly fixing well-known annoyances and warts, and removing a lot of old cruft

Indica cosa è diverso (la correzione) ma non perché (i problemi). Non ho trovato quali fossero i problemi. Quali sono stati i problemi risolti dalle correzioni?

    
posta user712092 01.10.2012 - 11:34
fonte

1 risposta

11

Chiamerò solo quelli che mi vengono in mente immediatamente.

  • Argomenti solo parole chiave: Descritti nella logica del PEP.
  • nonlocal : senza questo, le chiusure non possono sovrascrivere le variabili chiuse. Questa necessità nasce di volta in volta con decoratori e altre funzioni di ordine superiore. L'unica soluzione ragionevole (senza cambiare l'API esterna), memorizzando qualsiasi stato mutabile che si desidera in un oggetto mutevole, è eccessivamente brutta.
  • Dizionario e impostazione delle comprensibilità: la creazione di dizionari e insiemi in modo simile alla comprensione degli elenchi è meno carina e leggermente più lenta quando viene eseguita tramite la comprensione del generatore. Ci consente di utilizzare questi tipi dove sono appropriati, senza costi aggiuntivi. Idem per i letterali set, specialmente per in test (a partire da Python 3.2, anche questi sono ottimizzati dallo spioncino dello spioncino).
  • I letterali ottali esistevano in Python 2, ma la notazione 0777 è una trappola per coloro che non sono abituati (in altri contesti, l'aggiunta di uno zero iniziale non modifica né valore né base).
  • I valori letterali binari sono utili per un po 'di manipolazione, anche più dei valori letterali esadecimali.
  • I letterali byte sono un sintomo della distinzione forzata tra stringhe unicode e stringhe di byte e stringhe letterali che sono unicode. Questi cambiamenti ti costringono a pensare alla differenza tra testo e dati binari non interpretati e alle codifiche. Ciò è importante perché altrimenti è necessario un test approfondito (con gli input che noi pazzi di lingua inglese, Europa / America, raramente pensiamo mai) per trovare errori relativi alla codifica.
  • except ex, var - > except ex as var corregge l'errore comune except ValueError, IndexError (dovrebbe catturare entrambi, ma cattura solo il primo e sovrascrive il nome IndexError con l'eccezione rilevata).
  • Scopo di comprensione degli elenchi: evita gli spazi dei nomi inquinanti e consenti loro di pensare in termini di espressioni generatrici.
  • Sintassi e moduli rimossi: portaci più vicino a "Ci dovrebbe essere uno - e preferibilmente solo un modo - ovvio per farlo". ed evita le persone con poveri tutorial che si attengono al vecchio & modo per aggiustare le cose.
risposta data 01.10.2012 - 16:28
fonte

Leggi altre domande sui tag