Escolar Documentos
Profissional Documentos
Cultura Documentos
a
Python
(cont.)
Centro
de
Inform-ca
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
2011
Vinicius
Cardoso
Garcia
Referncias
Notas
de
aula
do
prof.
Tiago
A.
E.
Ferreira
(UFRPE)
How
to
Think
Like
a
Computer
Scien-st
hSp://www.greenteapress.com/thinkpython/ thinkCSpy
Classes
Denio
de
uma
classe
em
Python
class NomeDaClasse :! !<comandos >!
Objetos
de
Classe
Suportam
dois
-pos
de
operaes:
Referncia
a
atributos;
e
Instanciao.
Referncia
a
Atributos:
Sintaxe:
objeto.atributo
Atributos
vlidos
so
todos
os
nomes
presente
o
espao
de
nomes
do
objeto.
Ex.:
class MinhaClasse :! !Um exemplo simples de classe! !i = 12345! !def f(x):! ! !return hello world!
MinhaClasse.i
e
MinhaClasse.f
so
referncias
vlidas.
O
atributo
__doc__
tambm
vlido,
retornando
o
docstring:
Um
exemplo
simples
de
classe
Algoritmos
e
Estrutura
de
Dados
Introduo
a
Python
2011
Vinicius
Cardoso
Garcia
Objetos
de
Classe
Instanciao
de
Classe
X = MinhaClasse()!
De
forma
padro,
esta
operao
cria
um
objeto
vazio
(NULL)
Contudo
possvel
criar
um
objeto
em
um
estado
j
pr- denido.
Para
tanto,
existe
um
mtodo
especial
__init__()
def __init__(self) :! !self.data = []!
Objetos
de
Classe
Assim,
possvel
modicar
o
mtodo
__init__()
para
determinar
como
um
objeto
deve
ser
inicializado.
Exemplo:
Instncias
As
nicas
operaes
reconhecidas
por
instncias
so
as
referncias
aos
atributos
Existem
dois
atributos:
Atributos
de
dados
(ou
simplesmente
atributos)
Atributos
de
referncia
(ou
mtodos)
Atributos
de
Dados:
Estes
no
precisam
ser
declarados.
Exemplo:
seja
x
uma
instncia
da
classe
MinhaClasse
Instncias
Mtodos
Os
mtodos
so
as
funes
que
pertencem
asinstncias
das
Classes
Por conveno, o primeiro argumento de qualquer mtodo frequentement self Mtodos podem invocar outros mtodos atravs do argumento self:
Herana
Uma
Classe
pode
herdar
os
atributos
de
uma
outra
Classe
atravs
do
processo
de
Herana!
A
sintaxe
de
uma
classe
derivada
:
Se
um
atributo
invocado
no
for
da
classe
derivada,
este
ser
procurado
na
classe
base
Tal
processo
recursivo!
Herana
MlCpla
Em
Python
possvel
ter
heranas
ml-plas:
Contudo,
sabido
que
a
herana
ml-pla
pode
vir
a
gerar
muita
dor
de
cabea
Alm
do
que
em
teoria
os
problemas
podem
ser
resolvidos
por
herana
simples!
Algoritmos
e
Estrutura
de
Dados
Introduo
a
Python
2011
Vinicius
Cardoso
Garcia
10
Variveis
Privadas
Qualquer
iden-cador
do
-po
__nome__
ou
__nome_
subs-tuido
por
_className_nome,
onde
className
o
nome
da
classe
corrente.
Esta
construo
pode
ser
u-lizada
para
tornar
privada:
Instncias;
Variveis
da
Classe;
e
Mtodos
Fora
de
uma
Classe
no
se
aplica
tal
procedimento
Haver
truncamento
no
iden-cador
se
_className_nome
-ver
mais
de
255
caracteres
Algoritmos
e
Estrutura
de
Dados
Introduo
a
Python
2011
Vinicius
Cardoso
Garcia
11
12
ACvidade
PrCca
Crie
as
classes
Cliente
Nome
CPF
Endereco
Telefone
Numero
Agencia
Saldo
Saque
Deposito
Banco
Nome
Cliente
Conta-Corrente
Conta Corrente
Com
estas
3
classes
crie
um
programa
que
cadastre
clientes
no
banco
e
estes
possam
movimentar
as
contas
Quando
print
OBJ-Banco
gerar
um
relatrio
com
todas
as
contas!
Algoritmos
e
Estrutura
de
Dados
Introduo
a
Python
2011
Vinicius
Cardoso
Garcia
13