Python (langage) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Les distributions

Différentes distributions sont disponibles, qui incluent parfois beaucoup de packages dédiés à un domaine donné :

  • Python(x,y) : une distribution Python à l'usage des scientifiques basée sur Qt et Eclipse
  • Enthought Python Distribution (EPD) : Distribution scientifique

Historique des versions

Version Date de sortie Nouveautés
1.5(.2) 13 avril 1999
  • Ajout du mot clé assert
  • Possibilité d'importer une hiérarchie de modules (import spam.ham.eggs)
  • Nouveau module re qui remplace regex
  • Les exceptions sont maintenant des classes
  • Ajout de l'option -O qui supprime les assertions et informations de ligne de fichier
1.6 5 septembre 2000
  • La méthode append() des listes n'accepte plus qu'un seul argument
  • Le résultat des fonctions str() et repr() est maintenant beaucoup plus souvent différent, exemple : str(1L)=='1' et repr(1L)=='1L'
  • Les chaînes de caractères ont maintenant des méthodes (" abc ".strip())
  • Le module re est compatible avec l'ancien moteur, est plus rapide, et accepte les chaînes Unicode
  • Ajout du module distutils
  • Nouveau prototype "def f(*args, **kw)" pour les fonctions, avant il fallait utiliser apply()
  • int() et long() acceptent maintenant une base en second argument
  • L'opérateur in peut être surchagé avec une méthode __contains__()
2.0 16 octobre 2000
  • Changement majeur : support d'Unicode
  • Ajout des compréhensions de liste (List Comprehensions)
  • Ajout des opérateurs avec assignement (a+=b, a*=b, etc.)
  • Les chaînes str ont maintenant des méthodes
  • Nouveau ramasse-miettes à cycles
  • Nouveau prototype "def f(*args, **kw)" pour les fonctions, avant il fallait utiliser apply()
  • Ajout des modules distutils, xml.dom.minidom module et xml.sax
2.1 17 avril 2001
  • Création du module __future__ pour rendre les transitions plus douces
  • Comparaisons riches (méthodes __lt__, __le__, ..., __ne__)
  • Framework d'avertissement
  • Ajout des modules inspect, pydoc, doctest, pyunit
  • Ajout des références faibles (weak references)
  • Les fonctions peuvent avoir des attributs
  • "Nested Scopes"
  • La version 2.0.1 (juin 2001) sera la première version compatible GPL
2.2 21 décembre 2001
  • Unification de Type et de Class: on peut maintenant hériter des types de base
  • Ajout des itérateurs et générateurs
  • Nouvel opérateur a // b pour la division entière
2.3 29 juillet 2003
  • Ajout des fonctions enumerate() et sum()
  • Le type bool est maintenant vraiment distinct d'un entier
  • Beaucoup d'améliorations du support Unicode
2.4 30 novembre 2004
  • Ajout des décorateurs de fonction/méthode (@decorateur)
  • Conversion automatique d'un entier court en entier long si le résultat d'une opération est trop grand
  • Expressions de générateur retournant les résultats l'un après l'autre et non pas sous forme d'une liste, exemple : sum( x for x in xrange(10000) )
  • Ajout des fonctions reversed() et sorted()
  • La fonction sort() accepte les mots clés cmp, key et reverse
  • Création du module decimal et du routeur
2.5 19 septembre 2006
  • Ajout de l'opérateur with
  • Ajout des méthodes send(), throw() et close() aux générateurs
  • Expression conditionnelle (a if test else b)
  • Les imports de module peuvent être relatifs
  • Ajout des méthodes partition() et rpartition() aux chaînes str et unicode
  • Ajout des fonctions any() et all()
  • Intégration des bibliothèques ctypes, ElementTree, hashlib, sqlite3 et wsgiref
2.6 1er octobre 2008
  • Nouvelle syntaxe de formatage de chaînes de caractères
  • Classes de bases abstraites
  • Décorateurs de classes
  • Modules json, multiprocessing, contextmanager et fractions
  • Amélioration de la compatibilité avec Python 3
3.0 3 décembre 2008
  • Fusion des types 'int' et 'long'
  • Les chaînes sont en Unicode par défaut, 'bytes' remplace l'ancien type 'str'
  • Utilise des itérateurs plutôt que des listes là où c'est approprié (ex : dict.keys())
  • a/b est la vraie division par défaut
  • exec et print deviennent des fonctions
  • None et as deviennent des mots clé
  • Le fichier __init__.py n'est plus nécessaire pour les modules Python
  • `x`, l'opérateur <>, et la méthode find() des chaînes disparaissent
  • De nombreuses fonctions disparaissent : apply(), buffer(), callable(), ...
  • map() et filter() disparaissent au profit des compréhensions de liste
  • reduce() disparaît au profit des boucles explicites

Voir la PEP 3100 pour les détails

3.1 27 juin 2009
  • Ajout d'un type de dictionnaire ordonné,
  • Optimisations diverses apportées au type 'int',
  • Nouvelles fonctionnalités du module 'unittest',
  • Module d'entrées/sorties 'io' rendu plus rapide,
  • Implémentation de référence de l'instruction "import" en pur Python
  • Nouvelle syntaxe pour les instructions 'with' imbriquées.
Page générée en 0.099 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise