Python: Módulos. Claudio Esperança



Documentos relacionados
Python: Comandos Básicos. Claudio Esperança

Organização de programas em Python. Vanessa Braganholo

Python: Funções. Claudio Esperança

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Tutorial: Programando no Linux

CURSO B SICO DE PERL

Microsoft Access XP Módulo Um

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Universidade Federal do Pará Centro de Tecnologia da Informação e Comunicação Grupo de Trabalho SET. Tutorial PyQT4

Sistema Click Principais Comandos

Como gerar arquivos para Sphinx Operador

Python Funções. Introdução à Programação SI1

1 Detecção e correcção de erros Erros sintáticos Erros de execução Erros semânticos Erros semânticos...

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Prof. André Di Thommazo

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

ROTINAS PADRÕES DO SISTEMAS

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

COMO GERAR UM ARQUIVO NÃO IDENTIFICADO NO TABWIN

Tutorial de Matlab Francesco Franco

Aula 4: adivinhe o número

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

Gerenciando Pacotes *.deb

AMBIENTE DE PROGRAMAÇÃO PYTHON

Manual Administrador - Mídia System

ROTEIRO DE INSTALAÇÃO DO ORACLE FORMS & REPORTS 6i

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

A máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:

Computação I - Python

Lazarus pelo SVN Linux/Windows

TOTVS BA Guia de Customização Linha Logix

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

LINGUAGEM C UMA INTRODUÇÃO

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Lição 3. Como executar uma aplicação no Arduino?

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

Criando uma System Call no Minix

O Primeiro Programa em Visual Studio.net

Componentes da linguagem C++

Tutorial - Monitorando a Temperatura de Servidores Windows

LBC GAS versão 3.43 e LBCPDV versão 7.01 Belo Horizonte, 16/11/2010.

Tutorial para hostear e/ou gerar missões para a GVV usando o BADC

Nome N Série: Ferramentas

Como Gerar documento em PDF com várias Imagens

Desenvolvendo Websites com PHP

Download. Instalaça o. Geral

Ficha Técnica. Título Título do Manual Autor Athail Rangel Pulino Filho Copyright Creative Commons Edição Julho Athail Rangel Pulino 2

Roteiro 3: Sistemas Linux arquivos e diretórios

SAD Gestor Gerenciador de Backup

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Engenharia de Software III

Introdução ao Sistema. Características

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Procedimento para Configurar a Importação/Exportação de Arquivos Texto

Computação 1 - Python 1/ 41

Procedimento para Configurar a Importação/Exportação de Arquivos Texto

Este tutorial está publicado originalmente em

Manual Captura S_Line

E.E.E.B. Professor José Fernandes de Oliveira. Manual de Uso. Sistema Interno (Professores)

DIRETÓRIOS. Diretórios ZIM. Estabelecer um diretório de aplicativo. Campos do objeto Diretórios. Diretórios estrangeiros. Zim 8.

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

AULA 4 Sistemas Operacionais

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO

Auxiliar de instalação (Português Brasileiro) Primeiros passos

Orientação a Objetos

Java com Banco de Dados Posgree

Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS

Documentação Symom. Agente de Monitoração na Plataforma Windows

Google Drive: Acesse e organize seus arquivos

INSTALAÇÃO DO SISTEMA CONTROLGÁS

Introdução à Programação

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

Guião de Introdução ao Eclipse IDE Índice

ESTUDO DE CASO WINDOWS VISTA

Unidade 3: Linguagem de programação

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

CHECK 2000 Instalação e Uso do Check 2000 Cliente Servidor com o ZENworks 2

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

1 Ficheiros Métodos sobre ficheiros Ficheiros de texto vs. binários Procurar ocorrências de uma palavra...

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++

Usando o simulador MIPS

Capítulo 15. INICIALIZAÇÃO, TEMPO DE CPU E DOS

Portal Sindical. Manual Operacional Empresas/Escritórios

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Como Internacionalizar Scripts Bash

Sphinx Scanner Informações gerais V

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 03. Prof. Gabriel Silva

Banco de Dados Microsoft Access: Criar tabelas

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

VALIDAÇÃO DOS DADOS. JOTEC Tecnologia em Software. Manual Validação dos dados 1

ProGriD. Manual de Instalação

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Transcrição:

Python: Módulos Claudio Esperança

Módulos Módulos são programas feitos para serem reaproveitados em outros programas Eles tipicamente contêm funções, variáveis, classes e objetos que provêm alguma funcionalidade comum Por exemplo, já vimos que o módulo math contém funções matemáticas como sin, exp, etc, além da constante pi Toda a biblioteca padrão do Python é dividida em módulos e pacotes (veremos mais tarde) Alguns dos mais comuns são: sys, os, time, random, re, shelve

Escrevendo módulos Na verdade, qualquer programa que você escreva e salve num arquivo pode ser importado como um módulo Por exemplo, se você salva um programa com o nome prog.py, ele pode ser importado usando o comando import prog Entretanto, a importação só ocorre uma vez Python assume que variáveis e funções não são mudados e que o código do módulo serve meramente para inicializar esses elementos Após a importação de um módulo, este é compilado, gerando um arquivo.pyc correspondente No exemplo, um arquivo prog.pyc será criado Python só recompila um programa se o arquivo.py for mais recente que o arquivo.pyc

$ cat teste.py def f(): print "alo" f() $ python... >>> import teste alo >>> import teste >>> teste.f() alo >>> $ dir teste* teste.py teste.pyc Exemplo (em Unix)

Tornando módulos disponíveis Em que diretório os módulos são buscados durante a importação? No diretório corrente Nos diretórios da lista sys.path Se for desejável especificar o local onde os módulos residem, há essencialmente duas opções Alterar diretamente a variável sys.path Alterar a variável de ambiente PYTHONPATH É o método recomendável pois não requer que o programa que importará o módulo seja alterado

Exemplo $ mkdir python $ mv teste.py python/ $ cat python/teste.py def f(): print "alo" f() $ export PYTHONPATH=~/python $ python Python 2.4.2 (#2, Sep 30 2005, 21:19:01)... >>> import teste alo

A variável name Se um programa pode ser executado por si só ou importado dentro de outro, como distinguir as duas situações? A variável name é definida para cada programa: Se é um módulo, retorna o nome do módulo Se é um programa sendo executado, retorna ' main ' Para saber se o código está sendo executado como módulo, basta testar: If name == ' main ': código Isto é útil em diversas circunstâncias Por exemplo, para colocar código de teste, código para instalação do módulo ou exemplos de utilização

Exemplo $ cat teste.py def f(): print "alo" if name == ' main ': f() $ python teste.py alo $ python Python 2.4.2 (#2, Sep 30 2005, 21:19:01)... >>> import teste >>> print name main >>> print teste. name teste

Pacotes São hierarquias de módulos Um pacote é um diretório que contém um arquivo chamado init.py O pacote deve estar em um dos diretórios nos quais o Python busca por módulos Para importar o pacote, use o nome do diretório O programa correspondente ao pacote é init.py

Pacotes Os demais arquivos e diretórios dentro do pacote são encarados recursivamente como módulos Por exemplo, se um pacote se chama p e contém um arquivo chamado m.py, então podemos importar p (arquivo p/ init.py) p.m (arquivo p/m.py) Semelhantemente, p poderia ter um outro pacote sob a forma de outro diretório contendo um arquivo init.py

Exemplo $ dir python/ pacote teste.py $ dir python/pacote/ init.py teste2.py $ cat python/teste.py print "teste" $ cat python/pacote/ init.py print "pacote" $ cat python/pacote/teste2.py print "teste2" $ python... >>> import teste teste >>> import pacote pacote >>> import pacote.teste2 teste2

A variável all Em princípio, todos os nomes definidos num módulo são disponibilizados quando o módulo é importado As exceções são nomes que começam com um _ Para restringir os nomes que se quer exportar, usa se a variável all É uma lista de strings de nomes de objetos (variáveis, classes, funções) que serão exportados

Exemplo $ cat test.py def f (): print "f" def g(): print "g" h = 5 all = ["h","g"] $ python... >>> from test import * >>> h 5 >>> g <function g at 0xb7c9a17c> >>> f Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'f' is not defined