2008-10-03 7 views
9

Beaucoup de fonctionnalités utiles en Python sont quelque peu "cachées" dans les modules. Les tuples nommés (nouveaux dans Python 2.6), par exemple, se trouvent dans le module collections.Maintenant que Python 2.6 est sorti, quels modules sont actuellement dans la langue, chaque programmeur devrait-il être au courant?

Le Library Documentation page vous donnera tous les modules dans la langue, mais les nouveaux arrivants à Python sont susceptibles de se trouver en disant: « Oh, je ne savais pas que je aurais pu le faire cette façon en utilisant Python! » à moins que les caractéristiques importantes dans la langue ne soient signalées par les développeurs expérimentés.

Je suis pas spécifiquement à la recherche de nouveaux modules dans Python 2.6, mais les modules qui peuvent être trouvés dans cette dernière version.

+0

Désolé, le libellé de cette question est assez mauvais: "Maintenant que 2.6 est notre, quels sont les meilleurs modules python (pas limités à 2.6 additions)" Essayez une formulation plus simple: "Quels sont les meilleurs modules python?" De plus, "tous les programmeurs" n'utilisent pas python: la partie "chaque programmeur devrait-il être au courant" est un peu fausse. –

+0

Votre lecture de cette question n'est pas très bonne non plus. Je ne voulais pas savoir ce que sont les "meilleurs modules". Je voulais connaître tous les modules * fondamentaux *, ceux que vous * devriez * connaître. En ce qui concerne le commentaire «tous les programmeurs», soit vous n'êtes pas vraiment brillant, soit vous êtes de mauvaise humeur. –

Répondre

3

Bibliothèques essentielles

Le principal défi pour un programmeur expérimenté venant d'une autre langue à Python est à comprendre comment une des cartes de langue à l'autre. Voici quelques bibliothèques essentielles et comment elles se rapportent aux équivalents de Java.

os, os.path 

A des fonctionnalités comme dans java.io.File, java.lang.Process, et d'autres. Mais plus propre et plus sophistiqué, avec une saveur Unix. Utilisez os.path au lieu de os pour les fonctionnalités de niveau supérieur.

sys 

manipuler les sys.path (qui est comme le chemin de classe), enregistrer des gestionnaires de sortie (comme en Java objet d'exécution) et l'accès à la norme flux I/O, comme dans java.lang.System.

unittest 

Très similaire (et sur la base) JUnit, avec des installations d'essai et les harnais exécutables.

logging 

Fonctionnalité presque identique à log4j avec niveaux de consignation et loggers.(Exploitation forestière est également dans la bibliothèque standard java.util.logging)

datetime 

Permet dates et heures parsing et de mise en forme, comme dans java.text.DateFormat, java.util.Date et connexes. Autorise la configuration persistante comme dans un fichier de propriétés Java (mais permet également l'imbrication). Utilisez ceci quand vous ne voulez pas la complexité de XML ou d'un backend de base de données.

socket, urllib 

fonctionnalités similaires à ce qui est dans java.net, pour travailler avec soit des prises, ou la récupération de contenu via des URL/URIs. De plus, gardez à l'esprit que beaucoup de fonctionnalités de base, telles que la lecture de fichiers et l'utilisation de collections, sont dans le langage python de base, alors qu'en Java, elles se trouvent dans des paquets.

5

Peut être PEP 0631 et What's new in 2.6 peut fournir des éléments de réponse. Ce dernier article explique les nouvelles fonctionnalités de Python 2.6, publiées le 1er octobre 2008.

12

Le nouveau module le plus impressionnant est probablement le module multiprocessing. Tout d'abord parce qu'il vous permet d'exécuter des fonctions dans de nouveaux processus aussi facilement et avec à peu près la même API que vous le feriez avec le module threading. Mais surtout parce qu'il introduit beaucoup de grandes classes pour communiquer entre les processus, comme une classe Queue et une classe Lock qui sont chacune utilisées comme ces objets seraient dans le code multithread, ainsi que d'autres classes pour le partage de la mémoire entre les processus .

Vous trouverez la documentation à http://docs.python.org/library/multiprocessing.html

6

Le new json module est une véritable aubaine pour les programmeurs web !! (Il était connu comme simplejson avant d'être fusionnés dans la bibliothèque standard.)

Il est ridiculement facile à utiliser: json.dumps(obj) code pour un objet Python intégré de type à une chaîne JSON, tandis que json.loads(string) décode une chaîne JSON dans un objet Python .

Vraiment très pratique.

Questions connexes