2009-09-29 5 views
9

He estado programando Python por un tiempo y tengo una muy buena comprensión de sus características, pero me gustaría mejorar mi estilo de codificación. Creo que leer el código fuente de los módulos de Python sería una buena idea. ¿Alguien puede recomendar alguno en particular?Módulos Python que valen la pena leer

Temas relacionados:

+0

Subí ambos itertools y Django, ya que ambos aprendí Python. +1 para itertools porque es un código muy bueno y un módulo importante para conocer bien. +1 para Django porque es uno de los códigos más estrictos que he visto en mi vida. –

Respuesta

18

Queue.py le muestra cómo hacer una clase segura para subprocesos y el uso adecuado del patrón de diseño Template Method.

sched.py es un excelente ejemplo del patrón Dependency Injection.

heapq.py es una implementación realmente bien diseñada de la estructura de datos Heap.

Si tuviera que elegir mis tres módulos favoritos en la biblioteca estándar de Python, esta tripleta sería probablemente mi elección. (No duele que todos sean tan muy muy útil ... pero estoy eligiendo en términos de calidad de código, comentarios y diseño, ante todo).

+0

La cola es * impresionante * cuando se trata de la comunicación de subprocesos. – FogleBird

+0

@FogleBird, de acuerdo. Pero también lo son las itertools cuando se trata de iteradores ... sin embargo, NO HAY itertools.py, y cuando alguien está pidiendo buenos módulos de Python para leer, http://svn.python.org/view/python/trunk/Modules/itertoolsmodule.c?revision=73536&view=markup NO es una buena sugerencia! -) La utilidad es un criterio, pero uno secundario a la luz de la pregunta que realmente se hizo ;-). –

+0

@Alex: No tomé el póster para pedirle que lea los módulos C para la implementación de Python. Si está pidiendo mejorar su estilo de codificación, es de suponer que realmente quiere ver un buen código de Python y aprender a usar los módulos. Al menos, así es como estoy tomando esta solicitud. Mirando los indicadores (que están por todas partes), diría que la pregunta podría soportar un poco de reescritura o enfoque. – hughdbrown

6

voto por itertools. Aprenderá mucho sobre el estilo de programación funcional al usar este código, aunque quizás no al leer la fuente.

Para obtener un buen tutorial módulo por módulo, pruebe Doug Hellmann's Python Module of the Week. También me gusta el estilo/prácticas de programación python exploradas y desarrolladas en WordAligned. También me gusta Peter Norvig's code, especialmente el spelling corrector code y el sudoku solver.

Otros módulos interesantes para aprender: colecciones, operador, os.path, optparse y los módulos de proceso/subprocesamiento.

0

estoy aprendiendo Django y me gusta mucho su estilo de codificación,

http://www.djangoproject.com/

+1

Aunque hay ideas interesantes en la fuente django, también hay muchas cosas que debes evitar. En especial, no me gusta usar globos globales para todo, lo que hace django inflexible. –

+0

Soy nuevo en Python y estoy buscando un framework web flexible. ¿Cuál es tu sugerencia? –

+0

Django es definitivamente el más popular, pero a menudo me resulta demasiado mágico (esconderme demasiado, hacer demasiado en mi nombre); así que a menudo me dirijo a WSGI con ayudantes ligeros (a lo sumo, algún subconjunto de Werkzeug). Pero supongo que es un estilo peculiar (el servidor es más una aplicación web que un sitio web, la funcionalidad de "vista" está delegada en javascript + dojo en el navegador), y la mayoría de la gente prefiere marcos de servidor más ricos/más gruesos; en ese nicho, los principales contendientes de Django son Pylons/Turbogears2, o en el extremo extremo realmente rico/pesado, Zope/Plone. –

0

PEP 8 es el estilo de codificación "estándar" de Python, por cualquier versión de "estándar" que desea utilizar. =)

Cuestiones relacionadas