Módulos
Introdução
“Um módulo é um arquivo Python contendo definições e instruções. O nome do arquivo é o módulo com o sufixo .py adicionado. Dentro de um módulo, o nome do módulo (como uma string) está disponível na variável global name”.
Fonte: https://docs.python.org/pt-br/3/tutorial/modules.html
- Um módulo é um arquivo Python contendo definições e sentenças.
- Módulos são arquivos de código Python cuja interface pode ser importada por outros módulos.
- Um módulo pode conter tanto instruções executáveis quanto definições de funções e classes.
- Um pacote é uma coleção de módulos.
- Dentro do módulo, é possível ver o nome do módulo usando o comando “print(__name__)”.
Exemplos
Considere o arquivo modulo.py, mostrado abaixo, com duas funções: fatorial() e fibonacci().
# Calcula fatorial de n def fatorial(n): i = 1 fat = 1 while i < n + 1: fat = fat * i i = i + 1 return fat # Imprime os termos da série de Fibonacci menores que n def fibonacci(n): a, b = 0, 1 while a < n: print(a) a, b = b, a+b
Para chamar as duas funções acima em um outro arquivo, basta usar o comando import. Considere o arquivo teste.py abaixo.
import modulo fat = modulo.fatorial(5) print("O fatorial de 5 é", fat) print("Os termos da série de Fibonacci menores que 20:") modulo.fibonacci(20)
É também possível especificar as funções que precisam ser importadas. Neste caso, não há necessidade de usar o prefixo modulo antes das funções.
from modulo import fatorial, fibonacci fat = fatorial(5) print("O fatorial de 5 é", fat) print("Os termos da série de Fibonacci menores que 20:") fibonacci(20)
A saída do programa (nos dois casos) é:
O fatorial de 5 é 120 Os termos da série de Fibonacci menores que 20: 0 1 1 2 3 5 8 13
O uso do comando “print(__name__)” no arquivo modulo.py tem como resposta “modulo”. O uso do comando “print(__name__)” no arquivo teste.py tem como resposta “__main__”. O termo “__main__” indica o nível superior onde o código é executado.
O exemplo abaixo usa a função dir() para listar todas as funções e variáveis do módulo importado e depois verifica o nome e a localização do módulo.
import modulo print(dir(modulo)) print("Nome do modulo =", modulo.__name__) print("Localização do modulo =", modulo.__file__)
A resposta do programa é:
[testes] python teste.py ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'fatorial', 'fibonacci'] Nome do modulo = modulo Localização do modulo = /home/morganna/Área de Trabalho/testes/modulo.py
Bibliotecas
- Uma biblioteca é um conjunto de módulos.
- A biblioteca padrão Python é um conjunto de módulos disponíveis para importação (Veja https://docs.python.org/pt-br/3/library/). Por exemplo: O módulo datetime fornece as classes para manipulação de datas e horas; o módulo math fornece acesso às funções matemáticas definidas pelo padrão C; o módulo string possui operações comuns de strings; o módulo csv fornece funções que permitem a leitura e a escrita de arquivos CSV; o módulo os fornece diversas interfaces de sistema operacional; etc.