Convenções e PEP 8

Princípios de Engenharia de Software em Python

Adam Spannbauer

Machine Learning Engineer at Eastman

O que são convenções?

Toque de Punhos

Pessoa Curvando-se

Aperto de Mão

Logo Python

Princípios de Engenharia de Software em Python

Introduzindo o PEP 8

PEP 8

"Código é lido muito mais do que é escrito"

Princípios de Engenharia de Software em Python

Violando o PEP 8

#define nossos dados
my_dict ={
    'a'  : 10,
'b': 3,
    'c'  :   4,
             'd': 7}
#importar pacote necessário
import numpy as np
#função auxiliar
def DictToArray(d):
    """Converter valores do dicionário para array numpy"""
    #extrair valores e converter
              x=np.array(d.values())
              return x
print(DictToArray(my_dict))
array([10,  4,  3,  7])
Princípios de Engenharia de Software em Python

Seguindo o PEP 8

# Importar pacote necessário
import numpy as np

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


# Função auxiliar
def dict_to_array(d):
    """Converter valores do dicionário para array numpy"""
    # Extrair valores e converter
    x = np.array(d.values())
    return x


print(dict_to_array(my_dict))
array([10,  4,  3,  7])
Princípios de Engenharia de Software em Python

Ferramentas PEP 8

PEP 8 com PyCharm

pacote pycodestyle

Princípios de Engenharia de Software em Python

Usando pycodestyle

datacamp@server:~$ pip install pycodestyle
datacamp@server:~$ pycodestyle dict_to_array.py
dict_to_array.py:5:9: E203 espaço em branco antes de ':'
dict_to_array.py:6:14: E131 linha de continuação desalinhada para indentação suspensa
dict_to_array.py:8:1: E265 comentário de bloco deve começar com '# '
dict_to_array.py:9:1: E402 importação de módulo não no topo do arquivo
dict_to_array.py:11:1: E302 esperado 2 linhas em branco, encontrado 0
dict_to_array.py:13:15: E111 indentação não é múltiplo de quatro
Princípios de Engenharia de Software em Python

Saída do pycodestyle

saída de erro do pycodestyle

Princípios de Engenharia de Software em Python

Vamos praticar!

Princípios de Engenharia de Software em Python

Preparing Video For Download...