Coletânea Python do ZERO às Redes Neurais Artificiais
Testando e validando um módulo
Até o momento você viu que em certas situações, fazemos uso de algumas funcionalidades internas do Python, normalmente por meio de estruturas de código associadas a palavras reservadas ao sistema.
Da mesma forma, em outros momentos comentamos que algumas
estruturas em Python são implícitas, geradas automaticamente no esqueleto do código cada vez que um novo arquivo é criado.
Por fim, você viu que é possível importar módulos de terceiros assim
como criar os seus próprios módulos, bastando realizar a interconexão entre os arquivos e os devidos instanciamentos dentro do código para que os mesmos sejam executados na ordem correta.
Sendo assim, realizando algumas ações diretamente sobre o esqueleto de
nosso código podemos realizar algumas validações para ver se de fato nosso código interage com os devidos módulos da maneira correta.
Usando do mesmo exemplo anterior, repare que agora em nosso módulo
foi adicionada uma estrutura condicional, porém uma estrutura condicional diferente do que você está habituado a trabalhar.
Analisando esta linha de código, repare que o que está sendo verificado
aqui é se __name__ é igual a __main__.
Vamos entender de fato o que é isto: Todo e qualquer arquivo criado em Python, ou seja, com extensão .py, ao inicializado o mesmo não somente é reconhecido pelo interpretador como implicitamente é criado um esqueleto de código implícito com algumas configurações básicas pré-definidas.
Uma dessas configurações é que ao se criar um novo arquivo em Python se presume que aquele arquivo será o núcleo de nosso programa, o arquivo principal do mesmo, e dessa forma ele possui um escopo implicitamente criado definido como __main__.
Quando estamos usando este arquivo como módulo de um programa, o arquivo principal do programa também tem sua pré-configuração atribuída a __main__, para que não haja conflito entre esses arquivos, e os mesmos tenham seus devidos comportamentos de acordo com sua hierarquia, uma prática comum é realizar uma simples validação, verificando se o módulo em si, quando importado para um programa, não sobrepõe o mesmo.
Executando nosso arquivo soma.py, o retorno é a própria mensagem de
validação, confirmando que as funcionalidades deste módulo (nesse caso apenas uma soma de dois números) ocorre como esperado.
Executando nosso arquivo main.py, como esperado, é chamada a função soma_num( ), pedido que o usuário digite dois números e é retornado a soma dos mesmos. Note que aqui não é executada a estrutura de validação de soma.py.
Em outras palavras, a partir do momento que importamos nosso módulo soma a partir do arquivo soma.py, este módulo, agora subordinado a main.py, não terá mais eu nome igual a “__main__”, mas terá seu nome reconhecido como “soma”.
Dessa forma a hierarquia está correta, sendo as estruturas de código de soma lidas e executadas conforme a demanda do arquivo principal main.py.