
O arquivo anexo foi otimizado e não está exatamente como no vídeo -- mas a essência de evitar o WHILE TRUE foi mantida... ;)
O objetivo deste vídeo é focar somente no papel da indentação do código e como podemos controlá-la para deixar as partes de uma função mais independentes e organizadas.
* O projeto "turismo" -- que acompanha a aula -- pode ser estudado nas seções 3 e 4.
Ele é usado também no teste de hadouken.py (TEST_DIR, linha 31).
Quando você tem que testar uma combinação de possibilidades -- em vez de criar muitos <if>´s -- o melhor jeito é usar um dicionário com todas as regras.
* Também é bom separar cada ação do seu código em uma função diferente.
** Você conseguiria implementar o envio de email neste programa? Como você faria?
;)
Você já fez o desafio dos múltiplos? Conseguiria fazer em uma linha só? E se em vez de 3 e 5 fossem 2, 5, 7 e 11?? Quantas variações da função dá pra fazer SEM alterar o código?
Esse é um jogo de perguntas onde cada resposta leva a outra parte do mapa. Mas o que acontece se você quiser VOLTAR por onde já passou..?!
Fala sobre "Referência Circular" e como alguns frameworks -- como Django -- tentam resolver isso implementando mecanismos complexos de controle de referência.
Projeto de uma rede social onde alguns métodos estão marcados com docstrings -- Depois de executar, esse texto vai aparecer na documentação README.md -- Também tente executar os testes e descobrir porque um deles não funciona.
* Você saberia dizer o que faz cada classe?
* Por que alguns atributos estão fora do __init__?
* Por alguns métodos tem o DECORATOR @classmethod ??
Nesta aula aprenderemos um pouco sobre herança múltipla, a palavra reservada SUPER e relação entre objetos.
Se você sempre procura na Udemy por cursos com certos parâmetros (idioma, duração, nível)...Por que não automatizar essa busca? Esta aula é uma introdução às requisições HTTP como uma forma de manipular dados (por enquanto só apresentando o resultado no navegador).
Nesta aula aprenderemos a usar padrões como MVC e afins adotados por frameworks que lidam com dados;
Também conheceremos métodos abstratos e um tipo básico de arquivo de dados que é o CSV ("Comma-separated values") bastante utilizado em ciência de dados -- e que possui repositórios de uso livre como KAGLE e, neste caso, MOVIE-LENS.
Se você também gosta de filmes, vai gostar de saber que pode filtrar seus filmes por gênero, classificação e rótulos (como as hashtags das redes sociais) -- E finalmente compreenderá, basicamente, como os bancos de dados varrem os registros.
Saiba quais são as partes do framework mais famoso para desenvolvimento web -- e como NÃO usá-las :))
No lugar delas, existem ferramentas muito boas como FastAPI e Pony ORM. -- Vale a pena conhecê-las!
APIs são formas de obter dados pela internet através de requisição simples (biblioteca requests do Python);
Seu sistema pode obter dados de várias APIs -- mas raramente elas respondem ao mesmo tempo...Por isso na próxima aula veremos o conceito de FILA.
OBS.: * Linha 13 do mongo_table.py é
return MongoTable._db.get_collection(cls.__name__)
> cls.__name__ vai funcionar assim: Quando a gente usa Atividade.save() / Atividade.find()... este __name__ vai conter "Atividade" ;)
Você conhece banco de dados de grafos? Então imagine que você pode esquecer tudo aquilo de "um para muitos"..."muitos para muitos" -- e ainda consultar os dados de uma maneira bem divertida...
Mais banco de dados de grafos, desde a criação dos dados de testes -- até as consultas para vários tipos de situações -- especialmente para buscar um caminho curto entre dois tipos de nodes diferentes (você e a empresa que você quer trabalhar).
Quando você coloca @alguma_coisa SOBRE uma função "xyz" -- o que acontece na verdade é isto:
def alguma_coisa(func):
... def wrapper(*args, **kwargs):
... print('Alguma coisa..')
... func() # <=== Executa "xyz" aqui!
... return wrapper
...
>>>
@alguma_coisa
... def xyz():
... print('Outra coisa')
...
>>> xyz()
Alguma coisa..
Outra coisa
>>>
Em vez de fazer:
>> pessoas = [
Pessoa(nome='João', genero='M', sobrenome='da Silva'),
Pessoa(nome='Maria', genero='F', sobrenome='Oliveira'),
Pessoa(nome='Pedro', genero='M', sobrenome='Gomes'),
... ... ...
]
testar(pessoas) # <------ Imagine se fosse preciso gerar 200 pessoas para teste!
.... que tal fazer ASSIM...
>> testar(Pessoas.fabrica(200)] # ???
Em cada trecho só vamos avançar quando encontrarmos todos os erros. Por exemplo, você notou que o Historico criado não tem .save() no final? Verifique também se os imports estão corretos e se está usando os tipos esperados de variáveis (como no caso do .find() que retorna uma lista...) Não se esqueça de voltar no banco de dados para ver como o histórico foi gravado. Se algo der errado repita tudo passo-a-passo! ;)
# ---------- Copie os dados abaixo e cole no seu código: ---------------
PESSOAS = '''
Amanda Fernandes
Luana Ferreira
Alice Moreira
Kleber dos Santos
Nicolas Lopes
Joao Guilherme da Rocha
Esther Pires
Juliana da Costa
Mariana Silva Mangabeira
Julia Cardoso
Luiz Miguel Bianchi
Erick Nogueira
Elisa da Costa
Levi Cardoso
Patricia Brandão
Maria Julia Peixoto
Elena Santos Pereira
Gabrielly da Silva
'''
Este curso pretende mostrar coisas que raramente aparecem na maioria dos cursos, sem ser entediante.
Se você já iniciou no Python e ficou com vontade de conhecer mais...Então talvez você possa se divertir com o que este curso tem pra te oferecer: Motores de jogos, formas incomuns de acesso a dados(*), curiosidades sobre algoritmos, um jeito diferente de ver a orientação a objetos, métodos mágicos, interpretadores inteligentes -- Exemplos com temas agradáveis e fora do convencional que vão desde procurar seu cachorro perdido, planejar o que levar na viagem, descobrir quão antigo é seu nome, com quem fazer contato para conseguir emprego, procurar um tesouro e até descobrir qual a cor mais comum entre as bandeiras dos países.
(*) Aqui não teremos CRUD´s em Django -- Aliás vamos ver algo que raramente é visto: Os pontos fortes e fracos de usar um ORM e/ou framework Web (que não precisam ser os do Django), evitar "overengineering" e a decidir você mesmo como gerenciar sua aplicação (em vez de deixar tudo por conta de uma caixa preta de código alheio) -- Isso NÃO quer dizer que você seja proibido de usar Django, mas que depois de apresentado às alternativas poderá decidir de forma mais segura.