Boas práticas de PEP 8
Tags: python, beginners
Published: 2021-04-24 15:59:53

PEP (Python Enhancement Proposals) 8 é um conjunto de convenções e práticas para a linguagem de código Python, essas práticas tem uso difundido na comunidade Python e facilitam a compreensão e edição do seu código. A PEP 8 foi publicada em 2001 e escrita por Guido Van Rossum, Barry Warsaw e Nick Coghlan, a proposta deste documento foi estabelecer um guia de estilo para a linguagem. 

Eu decidi escrever esse artigo com a intenção de consolidar meus conhecimentos sobre o assunto e facilitar a consulta do material, não só para mim, mas também para todos aqueles que estão iniciando o aprendizado da linguagem Python. 

Também elaborei os seguintes tópicos com base na aula de PEP8 do [curso Programação em Python do básico ao avançado da Geek University](https://www.udemy.com/course/curso-de-programacao-em-python-do-basico-ao-avancado/). Esses tópicos abordam as principais ideias de boas praticas da PEP 8.

Sintam-se à vontade para utilizar esse material e bons estudos! 

---

## 1. Nomeando clases, variáveis e funções: 

* Classes:

    - Classes utilizam CamelCase para diferenciar palavras de um nome composto, o que consiste de capitalizar as primeiras letras de cada palavra. 
        ```python
        class Classe: 
            pass 
    
    
        class ClasseComposta: 
            pass

        ```  

* Funções e variáveis:

    - Para nomear funções ou variáveis, utilize nomes em minúsculo, separando as palavras com underline. 
        ```python
        def soma(): 
            pass 
    
    
        def soma_dois(): 
            pass 
    
        numero = 4 

        numero_impar = 5 

        ```  

## 2. Indentação:

A indentação é utilizada para indicar que um bloco de código se encontra dentro de outro. Em Python, para realizar uma indentação são utilizados 4 espaços ao invés de tab pois a tecla tab pode ser reconfigurada em sistemas diferentes podendo gerar conflito no código, enquanto espaços são padrão em todos os sistemas. Essa pratica no entanto não é universal e caso você decida utilizar o tab é aconselhado não misturar os métodos de indentação. Utilize um ou outro. 

```python
if "a" in "banana": 
    print('tem')  

```  

## 3. Espaçamento entre linhas: 

- Separar funções e definições de classe com duas linhas em branco: 
    ```python
    class Classe1: 
        pass 
    
    
    class Classe2: 
        pass

    ```  
- Métodos dentro de uma classe devem ser separados com uma única linha em branco:
    ```python
    def metodo1(): 
        pass 
    
    def metodo2(): 
        pass 

    ```  

## 4. Imports: 

- Imports de pacotes completos devem ser sempre feitos em linhas separadas:
    - Errado:
        ```python
        import sys, os

        ```
    - Correto:
        ```python
        immport sys 
        import os 

        ```
- Imports de partes específicas de um pacote devem ser retirados com um mesmo comando podendo ser dividindo em múltiplas linhas quando forem muitas partes.  
    - Poucas partes:
        ```python
        from Types import StringTypes, ListTypes

        ```
    - Muitas partes:
        ```python
        from types import ( 
            StringType, 
            ListType, 
            SetType, 
            OutroType 
        )

        ```

## 5. Espaços em expressões e instruções:

- Tome cuidado com a utilizacao de espacos excessivos em Python. O PEP 8 defende a utilizcao minima deles nas expressões e instruções:
    - Errado:
        ```python
        função( algo[ 1 ], { outro: 2 } )

        ```
    - Correto:
        ```python
        função(algo[1], {outro: 2})

        ```
    - Errado:
        ```python
        x              = 1 
        y              = 3 
        variavel_longa = 5 

        ```
    - Correto:
        ```python
        x = 1 
        y = 3 
        variavel_longa = 5 
        
        ```

## 6. Finalização de logica: 

É muito importante que ao finalizar um bloco de lógica se use um espaçamento de uma linha em branco (tecla enter) para determinar seu enceramento. 

## Conclusões: 

Seguindo esses princípios você pode garantir que seu código Python será legível e organizado não só para você, mas também para todos aqueles que virão a ler e contribuir para seu código, também recomendo que leiam a [documentação oficial da PEP 8](https://www.python.org/dev/peps/pep-0008/) para melhor compreensão do assunto. 

---
Teve algum problema? Comente neste artigo!

Se este link foi útil pra você ou você quer apoiar os meus estudos,
deixe seu ❤️

Até a próxima!

![Obrigado!](https://media.giphy.com/media/M9NbzZjAcxq9jS9LZJ/giphy.gif)