Advertencia: “ahorro de tiempo” es un término vago, especialmente para una base de código grande y / o en crecimiento compartida por muchos desarrolladores, debe tener cuidado de que el tiempo ahorrado por una persona al escribir código (p. Ej., Con una sola línea inteligente) no comprometa enormemente el tiempo que otras personas dedican a leerlo, a mantenerlo oa trabajar de otra manera. Esta respuesta aborda la pregunta en términos de ganancias de productividad más amplias en todo el equipo de software, a diferencia de los consejos y trucos para piratear el código Python lo más rápido posible.
- Para Python idiomático, siéntase cómodo con las listas de comprensión, generadores, decoradores y gestores de contexto.
– Las listas de comprensión son a menudo la forma más idiomática de crear y transformar listas.
– Los generadores se utilizan con mayor frecuencia para definir los iteradores de manera limpia, generalmente con menos sobrecarga de memoria que las soluciones alternativas.
– Los decoradores son excelentes para el código de configuración / limpieza común, como la autenticación, el almacenamiento en caché o el tiempo. Algunos decoradores@classmethod
como@classmethod
y@property
son muy útiles cuando se trabaja con clases. Ver también: ¿Cuáles son los usos comunes de los decoradores de Python?
– Los administradores de contexto también son útiles para el código de configuración / limpieza, por ejemplo al abrir y cerrar archivos o etiquetas (Quora los usa para asegurarse de que las etiquetas en HTML generadas desde WebNode siempre estén cerradas). Otro caso de uso interesante es establecer algún estado para la duración de un bloque de código, como indicadores para omitir el caché o para canalizar instrucciones en red. - Familiarícese con todos los métodos de las estructuras de datos más comunes: listas, conjuntos, diccionarios. Python tiene una gran cantidad de funcionalidades incorporadas útiles para trabajar con estas estructuras de datos, como el corte de listas o las operaciones de conjuntos matemáticos con azúcar sintáctica para un fácil uso en conjuntos.
- Ejecutar fragmentos de código en un shell iPython. Aproveche al máximo el hecho de que Python tiene una gran shell interactiva: pruebe sus fragmentos de código rápidamente y juegue con la sintaxis o la lógica hasta que funcionen, inspeccione sus objetos y funciones, haga llamadas a las funciones de tiempo, etc. Asegúrese de usar iPython y no El shell estándar de Python, ya que iPython es mucho más poderoso y tiene características agradables como la tabulación y el
%history
. - Use una guía como PyFlakes, PyLint o PyChecker (comparación aquí: http://stackoverflow.com/questio…). Mejor aún, conecte su indicador a su editor para que lo revise a medida que avanza, de manera similar al análisis de código y al error o advertencia automática que resalta los IDE de Java.
- Familiarícese con las bibliotecas estándar de Python , como
urllib2
,time
anddatetime
,random
,itertools
,functools
,re
,collections
, etc. Consulte también: http://stackoverflow.com/questio. - Use sentencias de
print
ypdb
para depurar.print
es particularmente efectiva para usar en Python, ya que no necesita compilar su código nuevamente para comenzar a imprimir resultados de depuración útiles. En cuanto a pdb, simplemente descargue esto donde sea necesario para comenzar a investigar su programa en ejecución:import pdb; pdb.set_trace()
import pdb; pdb.set_trace()
; y recorra / entre, continúe o imprima los valores que desee. Véase también: http://docs.python.org/library/p… - Adopte convenciones de nomenclatura sólidas para que su código se autodocumente . Por ejemplo, si tiene ID de usuario y objetos de usuario en su base de código, siempre use * _user_id para referirse al primero y * _user para referirse al último, por lo que siempre está claro si está trabajando con un int / long. ID o un objeto que es el objeto de usuario completo. (Este es un ejemplo que es particularmente destacado debido a la falta de anotaciones de tipo estático de Python). Y a menos que esté utilizando
_
para i18n, use_
para indicar los valores que se deben desechar.