Módulos – Python – Linux

Publicado: 16 de fevereiro de 2014 em Python

Se você sair do interpretador Python e entrar novamente, as definições que você fez (funções e variáveis) são perdidas. Portanto, se você quer escrever um programa um pouco mais longo, é melhor usar um editor de texto para preparar a entrada de código  para o interpretador e executá-lo como um arquivo. Isto é conhecido como criação de um script.

Tal como o seu programa fica maior, você pode querer dividi-lo em vários arquivos para facilitar a manutenção. Você também pode querer usar uma função útil que você escreveu em vários programas sem copiar sua definição em cada programa.

Para suportar isto, Python tem uma maneira de colocar as definições em um arquivo e usá-los em um script ou em uma instância interativa do interpretador. Esse arquivo é chamado de módulo; definições de um módulo pode ser importadas para outros módulos ou ficar no módulo principal.

Sintaxe:

import [modulo]

from [modulo] import [função #1] , [função #2]

from [modulo] import *

Nota:

Em geral, a prática de importação * de um módulo ou pacote é desaprovado,  muitas vezes isto se faz com código mal legível. No entanto, não há problema em usá-lo para poupar a digitação em sessões interativas.

Caminho de Pesquisa de Módulos

Quando um módulo denominado [nome do modulo] é importado, o interpretador primeiro procura por um módulo integrado com esse nome. Se não for encontrado, então ele procura por um arquivo chamado [nome do modulo].py em uma lista de diretórios dadas pela variável sys.path.

sys.path é inicializada a partir destes locais:

  • O diretório que contém o script de entrada (ou o diretório atual).
  • PYTHONPATH (uma lista de nomes de diretório, com a mesma sintaxe que a variável PATH shell).
  • O padrão é dependente da instalação.

Após a inicialização, os programas em Python podem modificar o sys.path. O diretório que contém o script que está sendo executado é colocado no início do caminho de procura, à frente do caminho da biblioteca padrão. Isto significa que os scripts neste diretório serão carregados ao invés de módulos com o mesmo nome no diretório da biblioteca. Este é um erro, a menos se a substituição for proposital.

Exemplo:

Neste simples exemplos temos dois arquivos .py localizados no mesmo diretório e vamos importar as funções de um arquivo para dentro de outro um arquivo principal:

Python

Arquivo #1

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# modulos.py
# Importa OS
import os

# Limpa a tela
os.system("clear")

# Importa modulo
devaberto import devaberto

devaberto.msg("Menssagem enviada pela função do modulo devaberto")

Arquivo #2

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# devaberto.py
def msg(menssagem):
       print menssagem
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s