Executando verificação de segurança...
0

Como Python faz os imports?

Durante o desenvolvimento do meu projeto de pesquisa (qbuck https://github.com/Dpbm/qbuck), tive a necessidade de importar duas bibliotecas que possuiam o mesmo nome no mesmo script.

Após uma larga pesquisa, fiquei maravilhado com a imensa gama de maneiras de realizar essa façanha.

Resolvi então unir tudo que aprendi em um vídeo do YouTube.

Espero que gostem ;)

Carregando publicação patrocinada...
Conteúdo excluído
1

Muito obrigado pelo feedback, fico muito feliz que gostou! Caso tenha interesse em ver meus códigos e notas que usei no video, tem tudo no meu repositório também: https://github.com/Dpbm/video-python-import-methods/.


Em relação ao QBuck, provavelmente em um futuro próximo vou publicar e posso dar mais noticias sobre o projeto.
Eu acabei não me aprofundando tanto no funcionamento em si do random em python, acabei me limitando à qual algoritmo ele implementa. Caso esteja curioso, eu achei o paper original aqui https://dl.acm.org/doi/pdf/10.1145/272991.272995 e para entender melhor como o estado inicial é feito, é possível ver no código fonte https://github.com/python/cpython/blob/main/Lib/random.py#L128 e https://github.com/python/cpython/blob/3.14/Modules/_randommodule.c#L294. Pelo visto o método atual (quando nenhuma seed é passada, aka None) o Python tenta acessar algum device que prove bytes randomicos no sistema (como /dev/random ou /dev/urandom no linux), caso não seja possível acessar ele tenta pegar o horário atual do sistema como mostrado em: https://github.com/python/cpython/blob/3.14/Modules/_randommodule.c#L264 e https://github.com/python/cpython/blob/main/Python/pytime.c#L953. Se nada disso funcionar ele retorna -1.

Há também algumas outras partes no código que são mais densos, mas com certeza pseudo-random numbers são fascinantes!!

Conteúdo excluído
1

Claro! acabei de te seguir no github ☺️


É verdade eu tenho muitos repositórios, as vezes é até meio ruim porque deixo de dar atenção para alguns 😅 Como gosto muito da área, qualquer coisa que me instiga eu acabo inventando de fazer um projeto e muitas vezes isso acaba virando uma monstruosidade.


Em relação ao YouTube, você tem razão!

Vejo que o Brasil decaiu muito em questão de leitura e não há tanto blogs de Devs como há la fora.

Quando comecei na faculdade, inicei um projeto de documentar todos os dias que eu tinha aprendido algo novo em meu blog online. A principio publicava artigos no medium (https://dpbm.medium.com/) mas, como uma maneira de aumentar meu portifólio, decidi criar um site próprio (https://www.dpbmdev.com/).

Confesso que não estou dando a devida atenção à ele, mas pretendo publicar mais coisas por lá.

O YouTube, neste caso, seria mais como um hobby ou uma maneira mais simplificada de expor algo que aprendi e me forçar a revisar anotações que fiz.

Muito obrigado mesmo pelas palavras 🙏 e sucesso nos seus projetos 😉