POO em Python: Classes e Métodos
POO em Python: Classes e Métodos
programasdeformaqueaspropriedadeseoscomportamentossejamagrupadosemobjetosa
parte.
Porexemplo,umobjetopoderepresentarumapessoacomumnome,umaidade,umendereço,etc.,com
comportamentoscomoandar,falar,respirarecorrer.
Emoutraspalavras,aprogramaçãoorientadaaobjetoséumaabordagemquepermitemodelar
elementosconcretosdomundoreal,comocarros,bemcomorelaçõesentreentidadescomo
asempresaseosempregados,osestudanteseosprofessores,[Link]
entidadesreaisnaformadeobjetosdesoftwarecertosdadosquelhesestãoassociadosepodem
preenchercertasfunções.
Aprogramaçãoorientadaaobjetoséumtipodeprogramaçãobaseadanacriaçãodeclassesede
objetospormeiodeummétodochamadoinstanciaçã[Link]éumprotótipo(modelo)codificadoemumalinguagemde
programaçãocujoobjetivoécriarobjetosdotadosdeumconjuntodemétodoseatributosque
[Link]ãotiposdedados(variáveisde
classeevariáveisdeinstância)emétodos,acessíveisatravésdaconcatenaçã[Link]
programaçãoorientadaaobjetos,adeclaraçãodeumaclasseagrupamétodosepropriedades(atributos)
[Link],poderíamosdizerqueumaclasserepresentaumacategoriadeobjetos.
Elatambémaparececomoumafábricaquepermitecriarobjetoscomumconjuntodeatributose
métodoscomuns.
Desdesuacriação,Pythonéumalinguagemdeprogramaçã[Link]ão,acriaçãoe
OusodeclasseseobjetosemPythonéumaoperaçã[Link]áajudá-loa
aprenderpassoapassoousodaprogramaçãoorientadaaobjetosemPython.
2 – As classes em Python
ParacriarumaclasseemPython,usamosainstrução:
classnom_de_la_classe
Emseguida,criamosummétodoquepermiteconstruirosobjetos,chamadodeconstrutor,atravésdainstrução:
def __init__(self):
[Link]
classePessoa:
def __init__(self, nome, idade):
[Link] = nom
[Link] = age
POO PYTHON PAR M DIALLO
P = Personne("LeCodeurSympa",27)
print("O nome da pessoa é : ", [Link])
print("A idade da pessoa é : ", [Link], " anos")
# exibir : O nome da pessoa é : LeCodeurSympa
# L'age de la personne est : 27 ans
Exemplo:classeretângulo
classRectangle:
def __init__(self, L, l):
[Link]=L
[Link]=l
monRectangle=Rectangle(7,5)
print("O comprimento do meu retângulo é: ", [Link])
print("A largura do meu retângulo é: ", [Link])
Oqueexibenaexecução:
Ocomprimentodomeuretânguloé:7
Alarguradomeuretânguloé:5
Tambémpodemosmelhoraraclasseadicionandométodosquepermitemrealizardiferentestarefas.
3–OsmétodosdeclasseemPython
Ummétododeclasseéumafunçãoouprocedimentonomeadodentrodaclasse,permitindodefinir
propriedadesoucomportamentosdosobjetosdeinstâncias.
[Link]çãodemétodoquecalculaaáreadoretângulo
classeRetângulo:
def __init__(self, L, l):
[Link]=L
[Link]=l
Oqueéexibidoapósaexecução:
Lasurfacedemonrectangleest:35
4–Osmétodosestáticos
Ummétodoestáticoéummétododeclassequepossuiapropriedadedeserexecutadosempassarpor
Ainstâ[Link]étodoestáticoédeclaradoadicionandoaanotação:@staticmethod
POO PYTHON PAR M DIALLO
Exemplo.métodoestático
[Link]()
1–Noçãodeherançaeclassepai
Paraevitarreescreverocódigodeumaclasse,utiliza-seométododeheranç[Link]étododeherança
consisteemcriarapartirdeumaclassepai(ouclassemãe)outraclassechamadaclasse
filleou(classeenfant)queherdatodososmétodosepropriedadesdaclassemã[Link]
aaquisiçãoparaosaprendizesiniciantes,vamostratardesteconceitocomexemplossimples:
2–ExemplosdeherançasemPython
Classemère:
#‐*‐codificação: utf‐8‐*‐
classePessoa:
def __init__(self, nome, idade):
[Link] = nom
[Link]=age
AcabamosdedefinirumaclassePessoacujosatributossã[Link]..
créeruneclassefillenomméeStudentquihéritelesmêmesméthodesetpropriétésdelaclassesmère
[Link]çaéfeitaatravésdocomando:
class classe_filha(classe_mãe)
Oquesignificaqueaclasseclasse_filhaherdadaclasseclasse_mãe.
ExemploparaonossocasodaclassefilhaEstudantequeherdadaclassemãePessoa:
classStudent(Pessoa):
CódigodaclassefilhaEstudante:
#‐*‐codificação: utf‐8‐*‐
classeEstudante(Pessoa):
# definição dos atributos dos atributos
POO PYTHON PAR M DIALLO
Exemplo:(completo)
#‐*‐codificação: utf‐8‐*‐
classPersonne:
def __init__(self, nom, age):
[Link] = nom
[Link]=age
A classe filha Estudante herda da classe mãe Pessoa
classeEstudante(Pessoa):
# definição dos atributos dos atributos
def __init__(self, nom, idade, filiere):
herança dos atributos da classe mãe Pessoa
Pessoa.__init__(self,nome,idade)
adição de um novo atributo filiere à classe filha
[Link] = filiere
Stud = Student("Le CodeurSympa",27,"math")
print("O nome do estudante é: ", [Link])
print("A idade do estudante é: ", [Link])
print("A filiação do estudante é: ", [Link])
Oqueéexibidoapósaexecução:
Lenomdel’étudiantest:LeCodeurSympa
L’agedel’étudiantest:27
Aáreadoestudanteé:matemática
1Estudodeumexemplo
Consideremosocódigoseguintequepermitecalcularoquocientededoisnúmerosaeb:
Sevocêexecutarocódigoacimadandoa=6eb=3,oprogramaretorna:
Oquocientedeaporbé:a/b=2,0
Aexecuçãonãoapresentanenhumproblema!Masseousuáriodera=6eb=0,oprogramaretornao
mensagemdeerro:
[Link]:divisionbyzero.
Alémdisso,ointerpretadorPythoninterrompeaexecuçãodocódigo!
POO PYTHON PAR M DIALLO
Paraevitaressamensagemdeerroecontinuaraexecutarorestantedocódigo,usamosaestruturaTry.…
exceto
1. O bloco try permite testar um bloco de código para verificar se contém erros ou não e não
oexecutaapenassenãocontivernenhumerro!Casocontrário,oprograma
ignoreatotalidadedocódigonesteblocoepasseparaopróximobloco,exceto.
blocstryetexcept.
2–Gestiondesexceptions
Quandoumerroocorre,ouexceçãocomochamamos,oPythonnormalmenteparaegera
umamensagemdeerro.
Essasexceçõespodemsertratadasusandoainstruçãotry:
a = int(input("Digite o valor de a: "))
b = int(input("Tapez la valeur de b : "))
tente:
print("O quociente de a por b é: a/b = ", a/b)
exceto:
Por favor, escolha um valor b diferente de zero!
Nessecaso,sevocêdera=6eb=0,oprogramaignoraocódigodoblocotryapósdetectaruma
erroepassaautomaticamenteaocódigodubloc,excetoretornaportanto:
Porfavor,escolhaumvalorbdiferentedezero!
3–Exceçãoutilizandoainstruçãoraise
Podemosnosperguntaragoraseépossívellevantarumaexceçãosemencontrarumerro.
Exemplodeumprogramaquepedeaousuárioparadigitarsuaidadeelevantaumaexceçãoseaidade
est<18ans!Bienentenduunagetapéquiestinférieurà18ansestuneopérationquinecontientaucune
erro,eaindaassimpodemoslevantá-lo:
tente:
age = int(input("Veuille saisir votre age"))
se idade <18:
levantarValueError
caso contrário:
idade válida
exceto:
idade não válida !
4–Ainstruçãofinalmente
POO PYTHON PAR M DIALLO
Ainstruçãofinallyéusadaparaexecutarinstruções,independentementedeerrosseremgeradosounão.
Emtodososcasos(presençadeerrosounão!)ainstruçãodeclaradanoblocofinallyseráexecutada.
Sintaxe:
tentar:
# bloco de código que provavelmente pode lançar uma exceção
finalmente:
# bloco de código que será sempre executado