2.7 Módulos e o comando import

Como dito anteriormente, cada arquivo contendo código Python é denominado um módulo. Na grande maioria das ocasiões utilizamos um ou mais módulos Python em combinação: o interpretador interativo é adequado para realizar experimentos curtos, mas não para escrever código de produção.

Um módulo Python consiste de código-fonte contido em um arquivo denominado com a extensão .py; como tal, pode conter variáveis, funções e classes; para fins de nomenclatura, qualquer um destes elementos contidos em um módulo é considerado um atributo do módulo.

Python, através do módulo, oferece excelentes mecanismos para modularizar código-fonte. Esta modularização pode ter diversas motivações: o programa pode ser grande demais, ter sub-partes reusáveis que devem ser separadas, ou ainda necessitar de módulos escritos por terceiros. Esta seção introduz este conceito através do comando import.

2.7.0.1 Importando módulos e atributos de módulos

A instrução básica para manipular módulos é import. O módulo deve estar no caminho de procura de módulos do interpretador10. No exemplo a seguir, um módulo com o nome os.py é importado. Observe que a extensão .py não é incluída no comando import -- apenas o nome principal:

    >>> import os
    >>> print os.getcwd()
    /home/kiko

O módulo os define algumas funções internamente. No exemplo acima, invocamos a função getcwd() contida neste, prefixando a função com o nome do módulo. É importante esta observação: ao usar a forma import módulo, acessamos os atributos de um módulo usando esta sintaxe, idêntica à utilizada para acessar métodos da lista conforme descrito na seção 2.3.2.

Existe uma segunda forma do comando import que funciona de forma diferente. Ao invés de importar o módulo inteiro, o que nos obriga a usar as funções prefixadas pelo nome do módulo, este formato importa um atributo do módulo, deixando-o acessível localmente:

    >>> from os import getcwd
    >>> print getcwd()
    /home/kiko

2.7.0.2 Funções úteis

Há algumas funções pré-definidas no interpretador bastante úteis quando lidando com módulos e os atributos contidos em módulos:

O mecanismo de importação possui uma série de nuances especiais, que estão associados ao tópico escopo, introduzido na seção anterior, e aos namespaces, que resumidamente determinam o conjunto de atributos acessíveis em um determinado contexto. Uma descrição mais detalhada destes tópicos é oferecida na seção Python Scopes and Name Spaces do tutorial Python.



Notas de rodapé

... interpretador10
O caminho de procura é uma lista de diretórios onde o interpretador Python busca um módulo quando uma instrução import é processada; normalmente esta lista inclui o diretório atual e os diretórios de biblioteca padrão. Pode ser manipulado pela variável de ambiente PYTHONPATH ou pelo módulo sys.path.


Subsecções