Você pode agrupar suas funções e criar seus próprios módulos!
__main__
Voltemos por um momento a uma função simples, aquela que calcula o quadrado de um número, que vimos nas duas últimas lições:
def quadrado(x):
'''
Retorna o quadrado de um número
- Input:
- x: um int ou float
- Output: x*x (que é o mesmo que x ao quadrado)
'''
return x * x
Use agora help(quadrado)
. O resultado é, como esperávamos, nosso docstring:
Help on function quadrado in module __main__:
quadrado(x)
Retorna o quadrado de um número
- Input:
- x: um int ou float
- Output: x*x (que é o mesmo que x ao quadrado)
Mas repare na primeira linha impressa pelo help()
: Help on function quadrado in module main. Essa mensagem nos diz que a função quadrado()
faz parte de um módulo chamado __main__
. Main (“principal”) é o nome (name) do arquivo que você “roda” com o python. Você pode dar qualquer título para seu arquivo (por exemplo, meu_arquivo.py
) e rodá-lo em python. Seja qual for o título do arquivo, o python vai considerá-lo como um módulo (module
) com o nome __main__
. Em outras palavras, você já vem trabalhando com módulos desde o seu primeiro contato com python!
Qualquer outro arquivo incluído com import
no arquivo __main__
é um outro módulo. Você pode, portanto, criar um arquivo, digamos, meu_modulo.py
, colocar lá a sua função (quantas funções você quiser, na verdade), e importá-lo no arquivo principal.
Seus módulos só vão ser visíveis a seus arquivos
__main__
se estiverem na mesma pasta no computador que o arquivo principal. Existem maneiras de “instalar” seus módulos em locais específicos do computador (que não veremos aqui ), de modo a ficarem acessíveis com o comando
import
para arquivos principais guardados em qualquer pasta.
O título (nome do arquivo) de um módulo não pode conter caracteres especiais em python: acentos, hífens, espaços, e quase todos os demais caracteres não-alfanuméricos – o underline (
_
) é permitido.
Vamos fazer um exemplo passo a passo para a criação e uso de um módulo com a função quadrado()
.
meu_modulo.py
com o seguinte conteúdo:'''
modulo meu_modulo
Um módulo para calcular algumas propriedades numéricas
Criado por L.T.F.E. em 11/09/2019 (que medo!).
'''
def quadrado(x):
'''
Retorna o quadrado de um número
- Input:
- x: um int ou float
- Output: x * x (que é o mesmo que x ao quadrado)
'''
return x * x
meu_main.py
), importe o módulo com o comando import
da maneira que achar melhor, por exemplo, usando um apelido com as
:import meu_modulo as mm
import meu_modulo as mm
z = 5
y = mm.quadrado(z)
print(f'{z}² = {y}')
Com isso, deixamos nosso código modularizado, ou seja, compartimentado em unidades menores (os módulos) que são “gerenciados” por um arquivo principal (o de nome __main__
) que comanda a execução do programa.
Quando seus programas começarem a ficar grandes, como dezenas ou mesmo centenas de linhas, a vantagem de subdividi-lo em vários arquivos (módulos) vai começar a ficar evidente!
Repare que você pode acrescentar uma docstring no seu módulo, como eu fiz no exemplo acima. Isso é extremamente útil para usuários do seu módulo que queiram saber mais informações sobre os recursos e as aplicações que ele tem para oferecer.
Página atualizada em 07/06/20