Na linguagem Python, os módulos são nada mais que códigos-fonte que podemos importar em nossos scripts. Estes arquivos podem ter qualquer estrutura do Python e são executados no momento que são importados. Caso seja necessário executar o módulo novamente durante a execução do programa, podemos utilizar a função reload().
Os módulos são compilados quando importados pela primeira vez e são armazenados em um arquivo de extensão .pyc ou .pyo. Eles tem namespace próprio e aceitam Doc Strings. Possuem arquitetura Singleton, ou seja, somente uma instância é carregada na memória e ela fica disponível para o programa de forma global. O interpretador localiza os módulos por meio de uma listas de pastas PYTHONPATH (sys.path).
Importando módulos
Podemos carregar os módulos através da instrução import. Veja:
import os
Também podemos carregar os módulos de forma relativa. Veja:
from os import os
Se quisermos importar tudo que está definido no módulo, podemos utilizar o caractere “*”. Veja:
from os import *
Veja um exemplo prático, onde importamos o módulo calc e usamos a função media para calcularmos a média do grupo de números:
import calc lista = [10, 20, 30, 40, 50] print(calc.media(lista))
Criando um novo módulo
Podemos criar um módulo de forma simples e fácil. Criei uma pasta exemplo e criei um arquivo chamado meu_modulo.py:
Nesse arquivo meu_modulo.py, criamos uma função chamada minha_funcao() que possui como parâmetro variavel. A função não faz nada mais, nada menos, do que escrever na tela o que for passado como argumento. Veja o código fonte desse arquivo:
def minha_funcao(variavel): """ Usaremos essa função no próximo exemplo para printar o que for passado em variável. """ print(variavel)
Criamos um outro arquivo chamado chamada.py. Nele iremos importar o módulo que criamos e chamar a função minha_funcao(). Veja o código fonte desse arquivo:
import meu_modulo meu_modulo.minha_funcao("texto a ser printado")
Pronto. Agora quando executamos esse arquivo, temos o seguinte resultado:Criar módulos é uma ótima maneira de facilitar o reaproveitamento e a localização de falhas no código.