Python 2.7
Dans d’autres langues: de – en – fr – fr – it – ja – ko – nl – pl – pt – ru – sv – zh-hant
Pywikipedia désigne un ensemble de scripts qui sont conçus pour effectuer les robots collecteurs de tâches, sur Wikipedia ou d’autres projets de la Wikimedia Foundation. Ces scripts ont été écrits par plusieurs disciples du langage Python. Sur cette page vous trouverez des informations générales pour ceux qui souhaitent utiliser ce type de bot.
Les mises en œuvre
Outre la mise en œuvre de référence, appelé CPython (comme écrit dans C), il existe d’autres systèmes qui mettent en œuvre le langage Python:
Ces implémentations d’autres ne bénéficient pas nécessairement toute la bibliothèque de fonctions écrites en C pour l’implémentation de référence.
Standard Library
Python a une grande bibliothèque standard, fournissant des outils appropriés pour de nombreuses tâches différentes. Le nombre de modules de la bibliothèque standard peut être augmentée avec des modules spécifiques écrits en C ou Python.
La bibliothèque standard est particulièrement bien conçu pour l’écriture d’applications utilisant l’Internet, avec un grand nombre de formats et de protocoles standards gérés (comme MIME et HTTP). Les modules pour créer des interfaces graphiques et de manipuler des expressions sont également fournis.Python comporte également un framework de tests unitaires afin de créer des suites de tests complets.
Histoire
CWI
Dans la fin des années 1980, le programmeur Guido van Rossum a participé au développement du langage de programmation ABC Centrum voor Wiskunde en Informatica (CWI) aux Pays-Bas. Il a ensuite travaillé dans les appels de l’équipe système de système d’exploitation Amoeba qui étaient difficiles à interfacer avec le shell Bourne qui a été utilisé comme interface utilisateur. Il a ensuite estimé que le langage de script inspiré par ABC pourrait être intéressant comme une coquille d’Amoeba
En 1989, bénéficiant d’une semaine de vacances pendant les vacances de Noël, il utilise son personnel Mac d’écrire la première version de la language.Fan de la série télévisée Monty Python, il a décidé de baptiser le projet Python. Il a été principalement inspirée par ABC, par exemple, l’indentation comme syntaxe ou les types de haut niveau mais aussi Modula-3 pour la gestion des exceptions, le langage C et des outils UNIX.
Au cours de l’année suivante la langue commence à être adoptée par l’équipe du projet Amoeba, Guido poursuit son développement principalement dans ses temps libres. En Février 1991, la première version publique, numérotée 0.9.0, est affiché sur le alt.sources Usenet. La dernière version au CWI était Python 1.2.
Le CNRI
En 1995, Van Rossum continua son travail sur Python au CNRI (fr) Reston (fr), États-Unis, où il a sorti plusieurs versions du logiciel.
A partir d’août 1995, l’équipe travaille à CNRI Python Graal sur un navigateur Web en utilisant Tk. Il est équivalent au navigateur Python HotJava, pour exécuter des applets dans un environnement sécurisé. La première version publique, disponible en Novembre, est 0.2.He a dirigé l’élaboration de modules pour la librairie standard comme rexec urllib, ou htmllib. La version 0.6 sera la dernière du Graal et il est publié en avril 1999.
En 1999, le projet Computer Programming for Everybody (CP4E) est lancé avec la collaboration entre CNRI et la DARPA. Il s’agit d’utiliser Python comme langage de programmation d’enseignement. Cette initiative conduira à la création de l’environnement de développement IDLE. Les subventions prévues par la DARPA ne suffit pas à soutenir le projet, Guido doit quitter le CNRI. Python 1.6 a été la dernière version au CNRI.
Au BeOpen
Après la sortie de Python 1.6, et après que Van Rossum gauche CNRI pour travailler avec les développeurs de logiciels commerciaux, le CNRI et la Free Software Fondation a collaboré à modifier la licence de Python pour le rendre compatible avec la GPL. Python 1.6.1 est essentiellement le même que Python 1.6 avec quelques correctifs mineurs et la nouvelle licence compatible avec la GPL.
En 2000, l’équipe de développement propose à Python BeOpen.com pour former l’équipe de PythonLabs BeOpen. Python 2.0 a été la seule version sortie BeOpen.com. Après cette sortie, Guido van Rossum et les autres développeurs rejoint Digital Creations PythonLabs.
Andrew M. Kuchling publié en Décembre 1999, un texte appelé les verrues python qui synthétise les objections les plus fréquemment exprimées contre la langue. Ce document aura une influence certaine sur le développement futur de la langue.
Python Software Foundation
Python 2.1 est une version dérivée de Python 1.6.1 et Python 2.0. Sa licence a été rebaptisé Python Software Foundation License. Tout le code, la documentation et les spécifications ajouté, depuis la sortie de Python 2.1 alpha, est détenu par la Python Software Foundation (PSF), une association à but non lucratif fondée en 2001, s’inspire de l’Apache Software Foundation.
Pour réparer certains défauts du langage (orientation objet, par exemple avec deux classes différentes), et pour nettoyer des éléments obsolètes et redondants la bibliothèque standard, le Python a choisi de rompre la compatibilité descendante dans la nouvelle version majeure: Python 3.0, sorti en Décembre 2008.Cette version a été rapidement suivie par la version 3.1 qui corrige les erreurs de la version 3.0 directement les jeunes en rendant obsolètes.
Caractéristiques
Syntaxe
Python a été conçu pour être un langage lisible. Il vise à être visuellement propres et des mots fréquemment utilisés en anglais, où d’autres langues de signes de ponctuation, et a aussi moins de constructions que de nombreux langages structurés tels que C, Perl, ou Pascal. Les commentaires sont indiqués par le accolade.
Les blocs sont identifiés par indentation des accolades comme en C ou C, ou commencer … Fin comme en Pascal. Une augmentation de l’indentation marque le début d’un bloc, et une réduction de l’empreinte marque la fin du bloc courant. Les parenthèses sont facultatives dans les structures de contrôle:
types de base
Il est possible de déduire les types de base de classes pour créer votre propre types.We peut également produire ses propres types d’objets sans hériter itérable base itérable en mettant en œuvre le protocole d’itération de la langue.
Programmation fonctionnelle
Python vous permet de programmer dans un style fonctionnel. La compréhension de listes sont disponibles.Par exemple, pour créer la liste des carrés des nombres naturels inférieurs à 10, vous pouvez utiliser l’expression:
lambdas Python admettre que les expressions et peut être utilisé en tant que fonctions généralisées anonyme, mais en Python, toutes les fonctions sont des objets, ils peuvent être passés comme arguments à d’autres fonctions, et a appelé en cas de besoin. En effet, les fonctions définies avec def sont équivalentes à celles définies avec lambda, il est également possible de définir une fonction dans une autre fonction et d’obtenir ainsi une définition de fonction dans une variable locale, par exemple:
POO
programmation objet est très bien supportée par Python: tous les types de base, des fonctions, des instances de classe (les objets ‘classiques’ La C et Java) et les classes elles-mêmes (qui sont des instances de méta-classes) sont des objets.
Une classe est définie avec le mot classe. classes Python charge l’héritage multiple, il n’y
a pas de charge statique comme en C, mais le mécanisme d’arguments optionnels et mot-clé est plus général et flexible. En Python, l’attribut d’un objet de référence peut une variable d’instance ou de classe (le plus souvent une méthode). Vous pouvez lire ou modifier un attribut dynamiquement avec les fonctions:
Des méthodes spéciales et la surcharge des opérateurs
Ces méthodes, en commençant et se terminant par deux caractères de soulignement sont appelées lorsque vous utilisez un opérateur sur l’objet: (méthode __add__) = (__iadd__ méthode), [] (__getitem__ méthode) () (méthode __call__), … Des méthodes telles que __str__ et __repr__, définit la représentation d’un objet dans l’interpréteur interactif et rendu avec le mot-clé print.
Générateurs
Le rendement mot-clé utilisé dans une fonction pour effectuer cette fonction un generator.Calling cette fonction retourne un objet de type générateur, qui peut être utilisé dans une boucle for, par exemple.
Dans chaque appel, le générateur effectue son traitement afin de répondre aux mot-clé yield, renvoie la valeur du rendement d’expression, et le prochain appel, a repris son cours peu de temps après le rendement. Par exemple, pour calculer la suite de Fibonacci, vous pouvez faire:
Un générateur peut sembler identique à une fonction qui retourne une liste, mais contrairement à une liste qui contient tous les éléments d’un générateur calcule ses éléments un par un.
Réflexivité
Par ses nombreux dictionnaires (conteneur associatif mis en œuvre avec les tables de hachage), Python peut explorer les objets dans les différentes langues (introspection) et, dans certains cas de modifier (intercession).
Typage
Typing n’est pas vérifié au moment de la compilation. En conséquence, les opérations sur un objet peut échouer, ce qui signifie que l’objet en question est le type.Despite mal l’absence de typage statique, Python est fortement typé, interdisant les opérations avec peu de sens (comme, par exemple, l’ajout d’un numéro à une chaîne de caractères) au lieu d’essayer de silence le convertir en une forme qui fait sens. Python fournit des fonctions pour convertir des variables dans un autre type:
Compilation
Il est possible d’effectuer une analyse statique des modules Python avec des outils comme pychecker ou pylint. Sans avoir besoin d’une performance, ces outils localiser des défauts ou des structures découragés. Par exemple, une classe qui hérite d’une classe abstraite et ne remplace pas les méthodes abstraites, ou des variables utilisées avant d’être déclaré, ou les attributs d’une instance déclarée hors de la méthode __init__.
Des outils comme PyInstaller ou d’autres plus spécifiques comme Freeze Unix, OS py2exe py2app X et Windows peuvent ‘compiler’ un programme Python comme un programme exécutable et comportant un programme Python interpreter.The ne pas courir plus vite (il n’est pas compilé en code machine), mais il simplifie grandement la distribution, en particulier sur des machines où l’interpréteur Python n’est pas installé.
Object Model
tout Python est un objet dans le sens où une variable peut contenir une référence à tous les produits traités par la langue: les nombres, les méthodes, modules, etc. Toutefois, avant la version 2.2, les classes et les instances de classe était un type d’objet particulier, ce qui signifiait qu’il était impossible par exemple de tirer ses propres sous-catégorie de la liste d’objets.
Méthodes
Le Python Object Model est basé sur celui de Modula-3. Parmi ces prêts est de l’obligation de déclarer l’instance de l’objet, classiquement appelé self comme premier argument de méthodes, et à chaque fois que veut accéder à une instance donnée de ce dans le corps de cette pratique method.This n’est pas naturel pour les programmeurs par exemple de C ou Java, la profusion de soi est souvent critiqué comme une honte que la lecture du code génétique. Les partisans de l’auto explicite croient plutôt que d’éviter l’utilisation de conventions de nommage pour les membres de données et qui simplifie les tâches telles que l’appel d’une méthode de la superclasse ou la résolution de l’homonymie entre les membres de données. Il permet également des méthodes de traitement et de fonctions orthogonales.
Visibilité
La langue est un support très limité pour l’encapsulation. Il n’est pas, comme en java pour contrôle d’accès par exemple, par mots-clés tels que protégés ou privés.
la philosophie de Python est de différencier conceptuellement l’encapsulation de cacher de l’information. Le masquage d’information est de prévenir l’utilisation frauduleuse, il est un sujet de préoccupation pour la sécurité informatique. Le bastion module de la bibliothèque standard, ce qui n’est plus maintenu dans les dernières versions de la langue, contrôlant ainsi l’accès aux attributs d’un objet dans un environnement d’exécution restreint.
L’encapsulation est un problème de développement de logiciels. Le slogan des développeurs Python, c’est que nous sommes tous ici d’adultes (nous sommes entre adultes consentants). Ils estiment qu’il suffit d’indiquer, par des conventions d’écriture, toutes les interfaces utilisateurs et du public à son objection à se conformer à ces accords ou prendre des responsabilités. Il est de coutume de faire précéder par un underscore les membres privés. Le langage permet aussi d’utiliser un double underscore pour éviter les collisions de noms faisant précéder le nom donné automatiquement dans cette classe où elle est définie.
L’utilisation de la fonction de propriété () pour définir des propriétés qui sont destinés à intercepter, en utilisant des méthodes, l’accès à un membre de données. Il est donc inutile de définir une accesseurs systématique et masquage des données comme il est courant de le faire dans l’exemple C.
Héritage
Python supporte l’héritage multiple. Depuis la version 2.3, il utilise la C3 algorithme, de la langue de Dylan, de résoudre l’ordre de résolution de méthode (MRO). Versions précédentes utilisaient un algorithme de parcours en profondeur d’abord qui a été problématique dans le cas de l’héritage de diamants.
Développement
Le PEP
‘