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.
