PEP 8 – La guía de estilo para Python
La comunidad de usuarios de Python ha adoptado una guía de estilo que facilita la lectura del código y la consistencia entre programas de distintos usuarios. Esta guía no es de seguimiento obligatorio, pero es altamente recomendable. El documento completo se denomina PEP 8. En este resumen veremos algunos de los Indentación
Si: # opcion 1
foo = funcion_que_crea_bar(variable_1, variable2
variable_3)
# opcion 2
foo = funcion_que_crea_bar(
variable_1, variable2
variable_3)
No:
foo = funcion_que_crea_bar(variable_1, variable2
variable_3)
Tamaño máximo de línea
Las líneas deben limitarse a un máximo de 79 caracteres.
Líneas en blanco
Separar las definiciones de las clases y funciones con dos líneas en blanco. Los métodos dentro de clases se separan con una línea en blanco. Se recomienda utilizar líneas en blanco para separar partes del código, por ejemplo dentro de una función, que realizan tareas diferenciadas.
Imports
Los imports de distintos módulos deben estar en líneas diferentes:
Si: import os
import sys
No: import os, sys
Sí se puede, poner en una línea los elementos que se importan de un mismo módulo:
from subprocess import Popen, PIPE
Los imports deben ponerse siempre al principio del fichero, justo después de los comentarios y de la documentación y antes de la definición de las variables globales y las constantes.
Los imports deben agruparse en el siguiente orden:
\1. standard library. 1. 3rd party libraries. 1. local application.
standard library: las del propio sistema, por ejemplo sys, os, re,..
party libraries: las de paquetes que hemos descargado de terceros por ejemplo, biopython, pandas, matplotlib
local application: los modulos que nosotros creemes en nuestros propios paquetes.
Cada grupo de imports debe estar separado por una línea en blanco.
Espacios en blanco en expresiones
Evitar espacios en blanco extra en:
- Dentro de paréntesis.
Yes: spam(ham[1], {eggs: 2})
No: spam( ham[ 1 ], { eggs: 2 })
- Después de una coma.
Yes: if x == 4: print x, y; x, y = y, x
No: if x == 4 : print x , y ; x , y = y , x
- Antes del paréntesis de una llamada a una función.
Yes: spam(1)
No: spam (1)
- Antes del paréntesis de un índice.
Yes: dict['key'] = list[index]
No: dict ['key'] = list [index]
- Siempre rodear los operadores binarios con un espacio sencillo en ambos lados: assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not).
Yes: submitted += 1 No: submitted+=1
- Usa espacios alrededor de los operadores aritméticos:
Yes:
i = i + 1
submitted += 1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
No:
i=i+1
submitted +=1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)