Convenciones y PEP 8

Principios de ingeniería de software en Python

Adam Spannbauer

Machine Learning Engineer at Eastman

¿Qué son las convenciones?

Choque de puños

Persona inclinándose

Apretón de manos

Logo de Python

Principios de ingeniería de software en Python

Introducción a PEP 8

PEP 8

"El código se lee mucho más de lo que se escribe"

Principios de ingeniería de software en Python

Violando PEP 8

#define nuestros datos
my_dict ={
    'a'  : 10,
'b': 3,
    'c'  :   4,
             'd': 7}
#importar paquete necesario
import numpy as np
#función auxiliar
def DictToArray(d):
    """Convertir valores del diccionario a array de numpy"""
    #extraer valores y convertir
              x=np.array(d.values())
              return x
print(DictToArray(my_dict))
array([10,  4,  3,  7])
Principios de ingeniería de software en Python

Siguiendo PEP 8

# Importar paquete necesario
import numpy as np

# Definir nuestros datos
my_dict = {'a': 10, 'b': 3, 'c': 4, 'd': 7}


# Función auxiliar
def dict_to_array(d):
    """Convertir valores del diccionario a array de numpy"""
    # Extraer valores y convertir
    x = np.array(d.values())
    return x


print(dict_to_array(my_dict))
array([10,  4,  3,  7])
Principios de ingeniería de software en Python

Herramientas PEP 8

PEP 8 con PyCharm

paquete pycodestyle

Principios de ingeniería de software en Python

Usando pycodestyle

datacamp@server:~$ pip install pycodestyle
datacamp@server:~$ pycodestyle dict_to_array.py
dict_to_array.py:5:9: E203 espacio en blanco antes de ':'
dict_to_array.py:6:14: E131 línea de continuación desalineada para sangría colgante
dict_to_array.py:8:1: E265 el comentario de bloque debe comenzar con '# '
dict_to_array.py:9:1: E402 importación a nivel de módulo no al inicio del archivo
dict_to_array.py:11:1: E302 se esperaban 2 líneas en blanco, se encontraron 0
dict_to_array.py:13:15: E111 la sangría no es múltiplo de cuatro
Principios de ingeniería de software en Python

Salida de pycodestyle

salida de error de pycodestyle

Principios de ingeniería de software en Python

¡Vamos a practicar!

Principios de ingeniería de software en Python

Preparing Video For Download...