Journal Quoi de neuf pour Python?

Posté par  (site web personnel) .
Étiquettes : aucune
0
22
sept.
2007
La version 2.5 de Python et maintenant largement déployé dans les distributions. Et cette version sera présente par défaut dans la plupart des distributions à venir cet automne.
Mais connaissez vous bien Python 2.5?

A.M. Kuchling a écrit un document qui reprend l'ensemble des PEP implémentés dans Python 2.5: What's new in Python. Les parties les plus importantes de ce document ont été traduites.

Les documents traduit sont disponible à l'adresse http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)

Tout les changement ne sont pas important pour tout le monde, je résumerais ici les changements qui changent la vie :).

Expression ternaire: Python introduit une expression conditionnelle ternaire comme en C ou C++: http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
Cette expression est très pratique pour affecter dans les cas courant et cas d'exceptions. Il faut s'habituer à la syntaxe, elle est particulière.

Except et finally plus exclusif: Les structures Except-else et finally ne sont désormais plus exclusives: http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
La sémantique est la même que dans Java, c'est à dire que le bloc finally sera toujours exécuté, très pratique pour libérer des ressources.

Exception new-style: Les exceptions peuvent être de type new-style, et toute la hiérarchie existante devient new-style dans Python 2.5: http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
Beaucoup plus important: la hiérarchie d'exception a changé. Voyez l'article pour les détails mais en gros on peut maintenter intercepter Exception pour intercepter proprement toutes les exceptions.

Générateur modifiable à la volée: L'instruction yield devient une expression plutôt qu'une instruction, et elle peut retourner une valeur: http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
Ceci ajoute un nouveau mode de programmation des générateurs. De nouveaux design patterns verront vraisemblablement le jour pour les générateurs.

L'application partielle de fonction: Il est désormais possible de créer des variantes de fonctions en fixant des paramètres: http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
Ceci a été créé pour le paradigme fonctionnel de Python, néanmoins, cette fonctionnalité ajouté vraiment de la souplesse aux API. Voyez l'exemple de PyGTK dans l'article.

La suite concerne les changements à venir. Ceux-ci ne sont pas activé par défaut, mais ils sont déjà utilisable via un import de __future__.

L'instruction with: Python introduit une nouvelle instruction pour exécuter de façon sûre un bloc de code: http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
Cette nouvelle construction clarifiera énormément le code. Par exemple pour le multithread, l'instruction with permet de synchroniser facilement et clairement une portion de code. L'article fournit un exemple pour les transactions de base de données, rien que cet exemple montre les perspective intéressante de l'instruction with.
L'instruction sera activé dès Python 2.6.

Schéma d'importation clarifié: La façon dont les modules sont importés a été revue afin de régler certains problèmes et de clarifier ce mécanisme: http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
Ce changement est vraiment important car il cassera la compatibilité de tout le code qui repose sur l'importation relative de module. Afin de prévenir les problèmes, il est conseillé d'utiliser systématiquement l'importation absolue dès à présent.
L'importation relative/absolue sera activé dans Python 2.7

Si vous préférez voir l'original, passez sur http://docs.python.org/whatsnew/

Avant la traduction, j'ai contacté l'auteur pour avoir des précisions sur la licence utilisée. L'ensemble du document original est distribué sous licence Python, la traduction est bien sûr distribué avec la même licence.
  • # Remerciements

    Posté par  . Évalué à 8.

    Bonjour,

    Merci pour tes journaux. Celui-ci et celui sur la programmation système sont de qualité et intéressants, et j'y apprend plein de choses.

    Rien de plus à dire, mais ça valait le coup d'être soulevé, je crois. :)
    • [^] # Re: Remerciements

      Posté par  . Évalué à 5.

      Oui, beau travail de traduction

      Juste quelques petites coquilles pour que l'oeuvre devienne parfaite

      http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
      s/développeurs ont demandés/développeurs ont demandé/
      s/discutions interminable/discussions interminables/
      s/des votant/des votants/
      s/syntaxe n'étaient/syntaxe n'était/
      s/ont proposés/ont proposé/
      s/les expressions booléenne habituelle/les expressions booléennes habituelles
      s/des saut/des sauts/
      s/conditionnelle est utilisé/conditionnelle est utilisée
      s/évidant/évident/
      s/chaine/chaîne/
      S/j'utiliserais des expression conditionnelle /j'utiliserai des expressions conditionnelles/
      s/des parenthèse/des parenthèses/
      s/pourrait grouper /pourraient grouper /
      s/réalisé/réalisée/
      s/effectué/effectuée/
      s/parenthèes/parenthèses/
      s/pourrais/pourraient/
      s/parenthèes/parenthèses/

      http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
      s/sémentique/sémantique/
      s/combinaision/combinaison/
      s/Peut importe/Peu importe/
      s/est levé/est levée/
      s/sera comme même/sera quand même/
      s///
      http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
      s/assignassion/assignation

      ....
      • [^] # Re: Remerciements

        Posté par  (site web personnel) . Évalué à 4.

        Merci d'avoir relevé tout ces fautes et d'avoir fournit les corrections, les documents ont été corrigés.
        J'ai de sérieuses lacunes en orthographes et je suis content de profiter de ta relecture.

        Et merci à Remuz pour ses remerciement ;)
        • [^] # Re: Remerciements

          Posté par  . Évalué à 4.

          De rien,

          j'ai encore 5 mns
          http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
          s/qui serait des expressions/qui seraient des expressions/
          s/peut paraitre étrange/peut paraître étrange/
          s/désiraient l'ajout d'expression conditionnelle /désiraient l'ajout d'expressions conditionnelles
          s/devrait obliger d'entourer/devrait obliger à entourer/
          s/version apparait meilleure/version apparaît meilleure,
          s/Un autre raison/Une autre raison
          s/Il y eu des discussions/Il y a eu des discussions/
          • [^] # Re: Remerciements

            Posté par  . Évalué à 2.

            http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)
            s/deux façon/ deux façons/
            s/version combiné était compliqué/ version combinée était compliquée/
            s/exception est levés/exception est levée/
            • [^] # Re: Remerciements

              Posté par  (site web personnel) . Évalué à 3.

              Merci encore, j'ai intégré les dernières correction.
              • [^] # Re: Remerciements

                Posté par  . Évalué à 2.

                http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)

                s/être des classe/être des classes/
                s/classes classique/classes classiques
                s/relations d'héritages /relations d'héritage/
                s/réarangement/réarrangement/
                s/les développeurs voulait /les développeurs voulaient/
                s/les exceptions qui indiquaient/les exceptions qui indiquaient/
                s/oblige d'intercepter/ oblige à intercepter/
                s/ Le schémas/Le schéma/
                s/les version précédentes/les versions précédentes/
                s/une classe dérivé de/une classe dérivée de/
                s/les futures version de/les futures versions de/
                s/imposer cette contraite/imposer cette contrainte/
                s/ si cela serait fait ou pas /si cela sera fait ou non/

                http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)

                Avant Python 2.5, les générateurs ne pouvaient générer des données qu'à partir d'un code fixe. Maintenant, les générateurs possèdent des méthodes supplémentaires pour permettre de changer de comportement de ceux-ci.
                ...
                il n'y a plus de possibilités ...
                le code du générateur soit unevariable globale
                ....
                où elle sont obligatoires.
                ...
                (Le PEP 342 explique les règles exactes, qui sont qu'une expression ....
                Les valeurs sont envoyéesdans un générateur en utilisant sa méthode send(valeur). ...next() qui est appellée, le yield revoie None....
                ...il y a deux nouvelles méthodes disponibles avec les générateurs :
                ....L'exception est levée par l'expression yield ....

                L'effet cumulé de ces changements est de faire évoluer les ....
                peuvent être entrées, suspendues, et reprises
                ...

                L'addition de la méthode close() a uneffet secondaire qui n'est pas évident à première vue.
                ... finally a maintenant toujours une chance d'être lancée.
                • [^] # Re: Remerciements

                  Posté par  . Évalué à 2.

                  http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)

                  dont certains arguments ont déjà
                  ...
                  les outils nécessaires
                  ...
                  Pour des programmes écrits dans un style fonctionnel, vous voudrez parfois construire des variantes de fonctions existantes qui ont certains paramètres déjà remplis.
                  ...
                  et les arguments fixés : (fonction, arg1, arg2, ..., kwarg1=valeur1, kwarg2=valeur2). L'objet résultant est callable. Vous utilisez
                  ...
                  Le callback (fonction de rappel) fournie pour le menu est une version partielle de la méthode open_item() où le premier argument à été fournit
                  ...
                  la fonction décorateur possédera le docstring de la fonction décorée mais aussi des attributs supplémentaires ....

                  de vos propres décorateurs pour copier ...
                  • [^] # Re: Remerciements

                    Posté par  . Évalué à 2.

                    http://www.magellan.fpms.ac.be/python/quoi-de-neuf-dans-pyth(...)

                    ...certaines tâches qui nécessitaient de gérer les exceptions ...
                    qui utilisait précédemment des blocs "...écrire des objets utilisables avec cette instruction.... Cette objet peut renvoyer une valeur qui peut facultativement être stockée dans une variable. ...

                    Certains objets standards de Python ...
                    "for" a levé une exception au millieu du bloc.
                    ...
                    Le verrou est acquis avant que le block ne soit exécuté, ...
                    ...voudront comprendre les détails de....

                    ... Je ne présenterais pas le code détaillé mais j'insisterais sur les méthodes .... la terminologie des bases de données : un ensemble de changements d'une base de données estsont groupée en transaction. Les transactions peuvent être soit réalisées, tous les changements sont écrits dans la base de données, soit complètement annulées, aucun changements de la transaction ne sera appliqué et la base de données reste inchangée. Voyez la documentation de n'importe quelle base de données pour plus d'informations.)

                    Imaginez que nous ayons un objet qui représente une connexion à une base de données. ...
                    ...
                    elle n'a qu'à commencer une nouvelle transaction. ...qu'aucune exception n'a été levée, si c'est le cas la ...
                    et un décorateur utiles pour écrire des objets utilisables avec l'instruction "with".
                    ... Le générateur ne peut suspendre avec yield qu'une seule ...retour qui pourra être liée à une variable...dans le bloc sera levé par yield(voir PEP 342:
                    ...
                    Notre exemple de base de données de la section

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.