Python l02
Python l02
• Módulos
• Namespaces
• Módulos da biblioteca padrão
• Pacotes
• Arquivos e I/O
• Introspecção
• Exceções
• Decoradores
Módulos
Var 3
Var 3 foi ofuscada, pois foi
(re)definida no escopo local.
Função
Var 3
Estas são variáveis locais.
Var 4
Módulos da biblioteca padrão
"""
modutils => utilitários para módulos
"""
import [Link]
import sys
import glob
def find(txt):
"""encontra módulos que tem o nome contendo texto"""
resp = []
for path in [Link]:
mods = [Link]('%s/*.py' % path)
for mod in mods:
if txt in [Link](mod):
[Link](mod)
return resp
Módulos (exemplo)
mods = [Link]('xml')
[Link] [Link]
crt [Link]
lcd [Link]
oled [Link]
Arquivos e I/O (escrita)
import sys
# Numerando as linhas
for i, s in enumerate(file(fn)):
print i + 1, s,
O iterator retorna as linha do
arquivo.
Introspecção
Introspecção ou reflexão:
type(objeto)
capacidade do software de
# Retorna o tipo (classe) do objeto.
identificar suas próprias
estruturas internas, tais como
id(objeto)
tipos, escopo de variáveis,
# Retorna o identificador do objeto.
métodos e atributos.
locals()
# Retorna o dicionário de variáveis locais.
globals()
# Retorna o dicionário de variáveis globais.
len(objeto)
# Retorna o tamanho do objeto.
Introspecção
dir(objeto)
# Retorna a lista de estruturas do objeto.
help(objeto)
# Retorna as Doc Strings do objeto.
isinstance(objeto, classe)
# Retorna verdadeiro se objeto deriva da classe.
issubclass(subclasse, classe)
# Retorna verdadeiro se subclasse herda classe.
Introspecção (inspect)
print [Link]([Link])
# <module 'ntpath' from 'C:\Python24\lib\[Link]'>
print [Link](str)
# True
import traceback
try:
fn = raw_input('Nome do arquivo: ').strip()
# Numerando as linhas
for i, s in enumerate(file(fn)):
print i + 1, s,
Intercepta qualquer exceção.
except:
trace = traceback.format_exc()
print 'Aconteceu um erro:\n', trace
file('[Link]', 'a').write(trace)
raise SystemExit Gera uma nova exceção.
Decoradores
Decorador
Função Função
Original Modificada