Pular para o conteúdo principal

Python

Use lists, tuples, dictionaries, sets comprehensions.

name = [letter for letter in 'python']
print(name) # output: ['p', 'y', 't', 'h', 'o', 'n']

Padrão de Nomeações

Variáveis

snake case

nome_da_variavel

Funções

snake case

nome_da_funcao

Classes

Camel Case

NomeDaClasse

Métodos

snake case

nome_do_metodo

Constantes

constant case

NOME_DA_CONSTANTE

Módulos

snake case

nome_do_modulo.py

Pacotes

flat case

nomedopacote

Função anônimas

add = lambda y, x: y + x

Tome Cuidado com o tamanho de listas, tuplas, conjuntos e dicionários

transports = ['bus', 'airplane', 'motorbike', 'bike', 'car', 'ship', 'dinosaur'] #errado

# forma correta:
transports = ['bus',
'airplane',
'motorbike',
'bike',
'car',
'ship',
'dinosaur'
]
  1. Use typing annotations em funções e métodos. class Person:
    def __init__(self, name: str, age: int) -> None:
self.name = name
self.age = age
8. Sempre deixe espaços entre as funções.
def split_string_by_letter(string: str) -> list:
return [char for char in string]


def join_list_of_characters(char_list: list) -> str:
return ''.join(char_list)
  1. Não esqueça de usar encapsulamento.
class Foo:
public: None
_protected: None
__private: None
  1. Não retorne tipos diferentes em uma mesma função.
###### ERRADO #####
import datetime

def sleep_time(start_time: int):
current_time = datetime.datetime.now()

if start_time.hour() < current_time:
return 'sleeping'

return None

##### CERTO #####
import datetime

def sleep_time(start_time: int) -> str:
current_time = datetime.datetime.now()

if start_time.hour() < current_time:
return 'sleeping'

return 'waking up'
  1. Use operadores ternários, eles são úteis. import datetime
def sleep_time(start_time: int) -> str:
current_time = datetime.datetime.now()
return 'sleeping' if start_time < current_time.hour() else 'waking up'
  1. Junte dicionários em uma linha de código:
mary_name = {'name': 'Mary'}
mary_age = {'age': 20}

mary = mary_name | mary_age # output: {'name':'Mary', 'age': 20}
  1. Evite usar a keyword global:
# NÃO FAÇA ISSO!!!
def show_all_names(names_list: list) -> None:
global capitalized_list
capitalized_list = map(lambda x: x.capitalize(), names_list)
for name in names_list:
print(name)

use a keyword return invés de global assim você evita muitos problemas.

  1. Seja o mais organizado possível:
jeny={ 'name':'Jeny','age':17 } # errado
jeny = {'name':'Jeny', 'age':17} # certo
  1. Sempre cheque se o código está rodando no arquivo principal:
if __name__ == '__main__':
...
  1. Use design patterns em grandes projetos, como: Facade Observer singleton Factory Proxy Strategy
  2. Repita strings sem loops:
print("hello, world " * 3) # output: hello, world hello, world! hello, world
  1. Troque o valor entre as variáveis:
a = 1
b = 0

a, b = b, a