Pular para o conteúdo principal

Tutorial de módulos Python: Importando, escrevendo e usando-os

Aprenda como criar e importar módulos Python. Descubra as melhores práticas, exemplos e dicas para que você possa escrever códigos Python reutilizáveis, organizados e eficientes!
Actualizado 28 de mar. de 2025  · 8 min de leitura

Como iniciante, você começa a trabalhar com Python no interpretador. Mais tarde, quando você precisar escrever programas mais longos, começará a escrever scripts. À medida que seu programa aumenta de tamanho, você pode querer dividi-lo em vários arquivos para facilitar a manutenção e a reutilização do código. A solução para isso são os módulos. Você pode definir suas funções mais usadas em um módulo e importá-lo, em vez de copiar suas definições em diferentes programas. Um módulo pode ser importado por outro programa para que você faça uso de sua funcionalidade. É assim que você também pode usar a biblioteca padrão do Python.

Em termos simples, um módulo é um arquivo que consiste em código Python. Ele pode definir funções, classes e variáveis e também pode incluir código executável. Qualquer arquivo Python pode ser referenciado como um módulo. Um arquivo que contém código Python, por exemplo: test.py, é chamado de módulo, e seu nome seria test.

Há vários métodos para escrever módulos, mas a maneira mais simples é criar um arquivo com a extensão .py, que contém funções e variáveis.

Antes de começar a escrever seus próprios módulos, recomendo que você dê uma olhada em nosso curso Intro to Python for Data Science, que aborda os conceitos básicos da linguagem de programação Python.

Aprenda Python do zero

Domine o Python para a ciência de dados e adquira habilidades que estão em alta.
Comece a aprender de graça

Importando módulos em Python

Para usar a funcionalidade presente em qualquer módulo, você precisa importá-lo para o seu programa atual. Você precisa usar a palavra-chave import junto com o nome do módulo desejado. Quando o interpretador encontra uma instrução import, ele importa o módulo para o seu programa atual. Você pode usar as funções dentro de um módulo usando um operador de ponto (.) junto com o nome do módulo. Primeiro, vamos ver como usar os módulos da biblioteca padrão. No exemplo abaixo, o módulo math é importado para o programa para que você possa usar a função sqrt().

import math  # Import the math module
num = 4
print(math.sqrt(num))  # Call the sqrt() function from the math module

Por motivos de eficiência, cada módulo é importado apenas uma vez por sessão do interpretador. Portanto, se você alterar seus módulos, deverá reiniciar o interpretador.

Se for apenas um módulo que você deseja testar interativamente, use reload(), por exemplo: reload(module_name). No Python 3, você precisa importar importlib antes de usar reload():

import importlib
importlib.reload(module_name)

Como você pode escrever seus próprios módulos Python

Agora que você aprendeu a importar um módulo para o seu programa, é hora de escrever o seu próprio módulo e usá-lo em outro programa. Se você escrever um módulo, será como escrever qualquer outro arquivo Python. Vamos começar escrevendo uma função para adicionar/subtrair dois números em um arquivo calculation.py.

def add(x,y):
    return (x+y)
def sub(x,y):
    return (x-y)

Se você tentar executar esse script na linha de comando, nada acontecerá porque você não instruiu o programa a fazer nada. Crie outro script Python no mesmo diretório com o nome module_test.py e escreva o seguinte código nele.

import calculation            #Importing calculation module
print(calculation.add(1,2))   #Calling function defined in the calculation module 

Se você executar module_test.py, verá "3" como saída. Quando o interpretador encontrou a instrução import, ele importou o módulo calculation no seu código e, em seguida, usando o operador de ponto, você conseguiu acessar a função add().

Outras maneiras de importar módulos em Python

Há mais maneiras de importar módulos:

  • from .. import declaração
  • from .. import * declaração
  • renomear o módulo importado

Usando from module import name

A instrução from..import permite que você importe funções/variáveis específicas de um módulo em vez de importar tudo. No exemplo anterior, quando você importou calculation para module_test.py, as funções add() e sub() foram importadas. Mas e se você só precisasse da função add() em seu código? Aqui está um exemplo para ilustrar o uso de from..import.

from calculation import add
print(add(1,2))

No exemplo acima, somente a função add() é importada e usada. Você notou o uso de add()? Agora você pode acessá-lo diretamente sem usar o nome do módulo. Você também pode importar vários atributos, separando-os com uma vírgula na instrução de importação. Dê uma olhada no exemplo a seguir:

from calculation import add,sub

Usando from module import *

Você pode importar todos os atributos de um módulo usando essa instrução. Isso fará com que todos os atributos do módulo importado fiquem visíveis em seu código.

Aqui está um exemplo para ilustrar o uso de from .. import *:

from calculation import *
print(add(1,2))
print(sub(3,2))

Observe que, no mundo profissional, você deve evitar usar from..import e from..import*, pois isso torna o código menos legível.

Renomeando módulos em Python

Você pode renomear o módulo que está importando, o que pode ser útil nos casos em que você deseja dar um nome mais significativo ao módulo ou quando o nome do módulo é muito grande para ser usado repetidamente. Você pode usar a palavra-chave as para renomeá-lo. O exemplo a seguir explica como você pode usá-lo em seu programa.

import calculation as cal
print(cal.add(1,2))

Você economizou tempo de digitação ao renomear calculation como cal.

Observe que agora você não pode mais usar calculation.add(1,2), pois calculation não é mais reconhecido no seu programa.

Caminho de pesquisa de módulo em Python

Você pode precisar que seus módulos sejam usados em diferentes programas ou projetos e a localização física deles no diretório pode ser diferente. Se quiser usar um módulo que reside em algum outro diretório, você tem algumas opções fornecidas pelo Python.

Quando você importa um módulo chamado calculation, o interpretador primeiro procura um módulo interno com esse nome. Se não for encontrado, ele procurará um arquivo chamado calculation.py em uma lista de diretórios fornecida pela variável sys.path. sys.path contém esses locais:

  • O diretório que contém o script de entrada (ou o diretório atual)

  • PYTHONPATH (uma lista de nomes de diretórios com a mesma sintaxe da variável do shell PATH)

  • O padrão dependente da instalação

Suponha que module_test.py esteja no diretório /home/datacamp/ e que você tenha movido calculation.py para /home/test/. Você pode modificar sys.path para incluir /home/test/ na lista de caminhos, na qual o interpretador Python procurará o módulo. Para isso, você precisa modificar o site module_test.py da seguinte forma:

import sys
sys.path.append('/home/test/')

import calculation
print(calculation.add(1,2))

Arquivos compilados por bytes em Python

A importação de um módulo aumenta o tempo de execução dos programas, portanto, o Python tem alguns truques para acelerar esse processo. Uma maneira é criar arquivos compilados em bytes com a extensão .pyc.

Internamente, o Python converte o código-fonte em um formato intermediário chamado bytecode. Em seguida, ele traduz isso para o idioma nativo do seu computador e o executa. Esse arquivo .pyc é útil quando você importar o módulo da próxima vez a partir de um programa diferente - será muito mais rápido, pois uma parte do processamento necessário para importar um módulo já foi feita. Além disso, esses arquivos compilados em bytes são independentes de plataforma.

Observe que esses arquivos .pyc geralmente são criados no mesmo diretório que os arquivos .py correspondentes. Se o Python não tiver permissão para gravar em arquivos nesse diretório, os arquivos .pyc não serão criados. Esses arquivos geralmente são armazenados no diretório __pycache__ junto com os arquivos .py.

A função dir() do Python

A função dir() é usada para descobrir todos os nomes definidos em um módulo. Ele retorna uma lista ordenada de cadeias de caracteres contendo os nomes definidos em um módulo.

import calculation
print(calculation.add(1,2))
print(dir(calculation))

Saída:

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'sub']

Na saída, você pode ver os nomes das funções que definiu no módulo, add & sub. O atributo __name__ contém o nome do módulo. Todos os atributos que começam com um sublinhado são atributos padrão do Python associados a um módulo.

Conclusão

A criação de um módulo é necessária para um melhor gerenciamento de código e reutilização. O Python fornece a você alguns módulos internos, que podem ser importados usando a palavra-chave import. O Python também permite que você crie seus próprios módulos e os use em seus programas. Ele fornece a você arquivos compilados em bytes para superar o custo do uso de módulos, o que torna a execução mais rápida. Você pode usar o site dir() para conhecer os atributos definidos no módulo que está sendo usado em um programa. Isso pode ser usado tanto em módulos predefinidos quanto em módulos definidos pelo usuário.

Se quiser saber mais sobre Python, você pode dar uma olhada em nosso curso Python Intermediário para Ciência de Dados.

Perguntas frequentes

Posso importar um módulo dentro de uma função?

Sim. Você pode importar módulos dentro de funções, mas, normalmente, é melhor importar na parte superior do arquivo para maior clareza e desempenho.

O que acontece se dois módulos tiverem o mesmo nome?

O Python importará a primeira correspondência que encontrar no caminho de pesquisa do módulo (sys.path). Tenha cuidado ao nomear para evitar conflitos.

Preciso compilar meu módulo para .pyc manualmente?

Não. O Python cria automaticamente os arquivos .pyc quando você importa um módulo - se as permissões de gravação estiverem disponíveis.

Como posso verificar de onde um módulo está sendo importado?

Use o atributo __file__ do módulo:

import math
print(math.__file__)

Você pode usar from module import *?

Funciona, mas não é recomendado em código de produção. Isso pode poluir o namespace e dificultar o rastreamento do que está sendo usado.

Posso recarregar um módulo depois de editá-lo?

Sim, em uma sessão interativa, use importlib.reload():

import importlib
import mymodule
importlib.reload(mymodule)
Temas

Aprenda mais sobre Python com estes cursos!

Curso

Introduction to Python

4 hr
6.1M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado
Data Skills

blog

6 práticas recomendadas de Python para um código melhor

Descubra as práticas recomendadas de codificação Python para escrever os melhores scripts Python da categoria.

Javier Canales Luna

13 min

Tutorial

Tutorial do Python Excel: O guia definitivo

Saiba como ler e importar arquivos do Excel em Python, gravar dados nessas planilhas e encontrar os melhores pacotes para fazer isso.
Natassha Selvaraj's photo

Natassha Selvaraj

15 min

Tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

Tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

Tutorial

Tutorial de docstrings em Python

Saiba mais sobre os Docstrings do Python. Encontre diferentes exemplos e tipos de formatos de docstrings para Sphinx, Numpy e Pydoc.
Aditya Sharma's photo

Aditya Sharma

15 min

Tutorial

Desenvolvimento de back-end em Python: Um guia completo para iniciantes

Este guia completo ensina a você os fundamentos do desenvolvimento de back-end em Python. Aprenda conceitos básicos, estruturas e práticas recomendadas para você começar a criar aplicativos da Web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

15 min

Ver maisVer mais