19 dicas de python.
0. Use lists, tuples, dictionaries, sets comprehensions.
name = [letter for letter in 'python']
print(name) # output: ['p', 'y', 't', 'h', 'o', 'n']
1. SEMPRE use nomes de variáveis explicitos e evite acrônimos.
a = 15 # errado
age = 15 # certo
2. Preste atenção nas nomeações.
uso | formatação | exemplo |
---|---|---|
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 |
3. Use funções anônimas:
add = lambda y, x: y + x
4. Nunca escreva comentários inúteis:
year = 2021 # declarando a variável ano.
5. Escreva código legível:
import math, random, time
# faça isso invés
import math
import random
import time
6. 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'
]
7. 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)
9. Não esqueça de usar encapsulamento.
class Foo:
public: None
_protected: None
__private: None
10. 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'
11. 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'
12. 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}
13. 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.
14. Seja o mais organizado possível:
jeny={ 'name':'Jeny','age':17 } # errado
jeny = {'name':'Jeny', 'age':17} # certo
15. Sempre cheque se o código está rodando no arquivo principal:
if __name__ == '__main__':
...
16. Use design patterns
em grandes projetos, como:
- Facade
- Observer
- singleton
- Factory
- Proxy
- Strategy
17. Repita strings
sem loops:
print("hello, world " * 3) # output: hello, world hello, world! hello, world
18. Troque o valor entre as variáveis:
a = 1
b = 0
a, b = b, a
Autor:
feito por Filipe. Me encontre!!!