Programa como un Pythonista



By Jean Zelada / @jz3lada

Logo Python

Lenguaje de Programación

Creado en 1991 por Guido Van Rossum


ex Google, hoy Dropbox

La filosofía de Python hace incapie en una sintaxis muy limpia y que favorezca un codigo legible

Python y sus PEP


Propuestas de Mejora de Python (Python Enhancement Proposals o PEP's)

http://www.python.org/dev/peps/

PEP 8


Estilo de Programación: La legibilidad cuenta

Las propuestas ...

4 espacios por cada nivel de indentación


						
def saludo(sexo):
    if sexo == 'M':
        print "Buen día señor"
    elif sexo == 'F':
    	print "Buen día señora"
    else:
        print "Buen día"
						
					

Una línea en blanco entre funciones


						
def suma(a, b):
	
def resta(a, b):

						
					

Dos líneas en blanco entre clases


						
class Dibuja(cuadrado):
	#Codigo


class Pinta(red):
	#Codigo
						
					

Un espacio después de una coma, punto y coma, o dos puntos


						
No:
    if x == 4 : 
    	print x , y ; x , y = y , x
Sí:
    if x == 4: 
    	print x, y; x, y = y, x

						
					

Pon espacios alrededor de las asignaciones y las comparaciones (excepto en las listas de parámetros)

						
No:
    x= 1
    y=2
    z=x+y

Sí:
    x = 1
    y = 2
    z = x + y

						
					

No coloques espacios justo después de abrir o cerrar un paréntesis o justo antes de una lista de parámetros


						
No:
    spam( ham[ 1 ], { eggs: 2 } )
Sí:
    spam(ham[1], {eggs: 2})
						
					

Cadenas de documentación = Cómo usar el código


PEP 257


					
"""Retorna la cantidad de letras en un texto

    Descripción.

"""
						
					

Comentarios solo si son necesarios


No se deben de realizar comentarios obvios


						
x = x + 1   # Suma 1 a x
						
					

Y si lo usas ... Por qué (razones) y cómo funciona el código

minusculas_con_guiones



para funciones, métodos, atributos


						
def esta_es_una_funcion:

						
					

minusculas_con_guiones



o

TODO_MAYUSCULAS




para las constantes

PalabrasEnMayusculas



para las clases


						
class SoyUnaClase:

						
					

camelCase



sólo si es necesario adaptarse a convenciones que ya se utilizaban en el código


camelCase: Las palabras se separan poniendo en mayúscula la primer letra, excepto la primer letra de la primer palabra (Java)

Limitar los tamaños de línea a 79 caracteres como máximo


						
def __init__(self, primero, segundo, tercero,
             cuarto, quinto, sexto):
    salida = (primero + segundo + tercero
              + cuarto + quinto + sexto)
						
					

¡ Aplicen estas propuestas a su lenguaje preferido !


Los programas deben escribirse para que lo lean las personas, y sólo de forma circunstancial para que los ejecuten las máquinas.

—Abelson y Sussman, Estructura e Interpretación de Programas de Computadora

Programa siempre como si la persona que va dar mantenimiento a tu código fuera un psicópata violento que sabe dónde vives.

– Martin Golding