Instrução `import` Python: Módulos, Namespaces e Boas Práticas
Em Python, import é como traz código de um módulo para outro. Não é "main import" — esse termo não existe em Python. Aqui está como realmente funciona, com padrões uso diário.
Sintaxe Básica Import
import nome_módulo
Isto carrega nome_módulo e vincula a variável no namespace atual. Acede conteúdos com notação ponto:
import math
math.sqrt(16) # 4.0
math.pi # 3.14159...
Padrões Import Comuns
1. Importar Módulo (Padrão Recomendado)
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1,2,3]})
arr = np.array([1,2,3])
Vantagens: Explícito, legível, evita conflitos nomes, mostra origem.
2. Importar Nomes Específicos
from math import sqrt, pi
sqrt(16) # 4.0 — sem prefixo necessário
pi # 3.14159...
Use quando: Usa poucos nomes intensivamente. Evite: from módulo import * (poluição namespace).
3. Importar com Alias
import matplotlib.pyplot as plt
import seaborn as sns
Convenções padrão (pd, np, plt, sns, tf, torch) tornam código instantaneamente legível.
4. Imports Condicionais / Preguiçosos
# Só importa dependências pesadas quando necessário
def analisar_dados():
import pandas as pd # Import local — arranque mais rápido se não usado
return pd.read_csv('dados.csv')
Como Import Funciona Nos Bastidores
- Verifica
sys.modules— se já carregado, retorna módulo em cache - Encontra módulo via
sys.path(dir atual, PYTHONPATH, site-packages, stdlib) - Executa código módulo — executa statements topo (def, class, atribuições)
- Cria objeto módulo — namespace para globals módulo
- Guarda cache
sys.modules - Vincula nome namespace importador (por statement import)
Caminho Busca Módulo (sys.path)
import sys
sys.path # ['', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload',
# '/home/user/.local/lib/python3.11/site-packages', ...]
''= diretório script atual (ou CWD se interativo)- Instala pacotes:
pip install pacote→ site-packages - Ambientes virtuais isolam
site-packages
Pacotes e Submódulos
import pacote.submodulo
from pacote import submodulo
from pacote.submodulo import função
Diretório com __init__.py = pacote. __init__.py pode expor submódulos:
# pacote/__init__.py
from .submodulo import função_pública
__all__ = ['função_pública']
Armadilhas Comuns e Soluções
| Problema | Causa | Correção |
|---|---|---|
ModuleNotFoundError | Não instalado / env errado / typo | pip install, verifique venv, verifique ortografia |
ImportError: cannot import name | Import circular / nome não no módulo | Reestruturar, mover imports dentro funções |
| Conflito nome | from x import * ou ficheiro local sombra stdlib | Não nomeie ficheiros math.py, random.py; use imports explícitos |
| Erro import relativo | Executar módulo como script | Execute python -m pacote.módulo ou use imports absolutos |
Boas Práticas
- Biblioteca padrão primeiro, depois terceiros, depois locais — cada grupo alfabeticamente
- Um import por linha (PEP 8)
- Use
import módulosobrefrom módulo import * - Aliases: Use padrões comunidade (pd, np, plt, tf, torch)
- Evite manipulação runtime path — use empacotamento correto (
pyproject.toml,pip install -e .) - Type checking:
from __future__ import annotations+ guardsTYPE_CHECKING
Exemplo: Bloco Import Limpo
# Biblioteca padrão
import json
import os
from pathlib import Path
from typing import List, Optional
# Terceiros
import numpy as np
import pandas as pd
import requests
# Locais
from meu_projeto.config import settings
from meu_projeto.models import User
from meu_projeto.utils import logger
Sistema import Python é poderoso, explícito, previsível — quando entende modelo namespace. Regra de ouro: torne óbvio de onde vem cada nome. Seu eu futuro (e colegas) agradecerão.
Moedas & Câmbio
- Valor da Moeda de 1 Dólar Australiano em Rúpias Indianas
- O Selo de Dois Centavos de Maurício de 1883: Tesouro Filatélico
- História do Dinheiro em El Salvador
- Uso de Moeda em Belize: Precisa Trocar Dinheiro?
- Como Identificar Dinheiro Estrangeiro
- Como Obter Formulários de Imposto de Illinois: Fontes Oficiais
- Conversão de Lira para Dólares
- Opções de Moeda no Canadá
- Reação Bile a Indicadores pH: Tornassol, Fenolftaleína, Congo Red
