2008-12-05 7 views
14

Python 2.6 était fondamentalement un tremplin pour faciliter la conversion en Python 3. Beaucoup de fonctionnalités destinées à Python 3 ont été implémentées en 2.6 si elles ne rompaient pas la compatibilité ascendante avec la syntaxe et les bibliothèques de classes. Pourquoi n'avez-vous pas défini les littéraux ({1, 2, 3}), défini les informations ({v for v in l}) ou dicté les informations comprises entre {k: v for k, v in d} En particulier les compressions de dict aurait été une grande faveur ... Je me trouve en utilisant le beaucoup plus laid dict([(k, v) for k, v in d]) beaucoup ces derniers temps.Pourquoi Python 2.6 n'a-t-il pas défini des littéraux et des compréhensions ou dicté des compréhensions?

Y a-t-il quelque chose d'évident qui me manque, ou est-ce que c'est juste une caractéristique qui n'a pas fait la coupe?

+2

Notez que toutes ces fonctionnalités ont été implémentées dans Python 2.7. http://docs.python.org/dev/whatsnew/2.7.html –

Répondre

10

Toutes ces modifications sont syntaxiques/grammaticales. De telles modifications sont traditionnellement introduites d'abord dans une version Python x.y avec une instruction from __future__ import …, et implémentées au moins sur la version Python x. (Y + 1). Une telle transition n'a pas encore eu lieu pour ces changements. Techniquement, j'ai répondu à votre "pourquoi".

Maintenant, si vous vouliez dire, « pourquoi personne ne prend le temps de proposer, soutenir et mettre en œuvre quelque chose qui je voudrais avoir 2.x aussi, même si ils ne connaissent pas depuis I n'a jamais essayé de suggérer/supporter backporting ces améliorations de syntaxe dans comp.lang.python ou Python-Dev et I jamais essayé de lire même les PEP? ", alors la réponse réside en vous aussi, et vous peut offrir une réponse vous-même.

HTH

BTW, vous ne devriez pas utiliser le formulaire dict([(k,v) for k,v in d]), mais le dict((k,v) for k,v in d). Plus efficace. Pourquoi créer une liste intermédiaire?

Questions connexes