OOP com python – Uma breve introdução.
Olá pessoal, tudo bem?
Tem muita novidade vindo, mas não é hora, nem lugar, nem o tema para falar sobre. Mas como o show tem que continuar, trago para vocês uma breve introdução sobre Orientação a Objetos com Python. Confesso que já venho estudando Python a algum tempo, mas nunca com tanta intensidade quanto agora, isso por que surgiram projetos para trabalhar com geodjango (uma framework web em python) e a descobri pyqgis.
Deixando de enrolação...
Bem, Python é uma liguagem Orientada a Objetos, mas que permite que você desenvolva aplicativos programando estrutural, é uma liguagem interpretada, que não exige que você indique o tipo da variável (dinamicamente tipada), possui fácil controle de bloco, o que te prende só ao código, sem ter que perder tempo analisando símbolos em casos de erro de sintaxe, e o melhor de tudo, é livre!
Para melhor compreensão, precisamos entender alguns conceitos, como classe, objeto, atributo e método. Para ser diferente (ou não!), começo falando de objetos. Objetos são todas as coisas as quais você deseja abstrair. Bem, você é um objeto! Como assim eu tou louco? É verdade, você é um objeto. Melhor, você alem de ser um objeto, você faz parte de uma classe... Não, esquece a geografia por equanto, que mané classe social... eu estou afirmando que você faz parte de uma classe, a dos Humanos. Legal né? Continuando, seus atributos, de fato são seus atributos (ou características, como queiram.), e os métodos, bem, esses se referem as ações tomadas por você hoje. Acho que você acordou, comeu, andou... Isso são os métodos, as ações tomadas pelos objetos!
E como desenvolver usando OOP com Python?
Para o desenvolvimento em Python usando OOP, é preciso conhecer algumas palavras reservadas, como class, que se refere a uma classe de objetos abstraídos, self que é um parametro que possibilita você fazer referencia a um argumento, substitui o this do Java, dentre outras que veremos conforme a necessidade.
Para exemplificar vou criar aqui um programa bastante simples que pede para você inserir uma mensagem, e esta mensagem é retornada para você. Vejamos:
class Mensagem:
def __init__ (self,pessoa,texto):
self.nome = pessoa
self.opniao = texto
def __str__(self):
saida = self.nome+ ' escreveu: n' +self.opniao
return saida
nome_saida = raw_input ('Digite seu nome: ')
opniao_saida = raw_input ('O que você achou? n')
print Mensagem(nome_saida,opniao_saida)
Explicando o código:
No método __init__ da classe Mensagem, foram jogados dois parametros: pessoa e texto. O self, primeiro parametro apresentado é padrao da linguagem, entao é conveniente utilizá-lo.
O trecho self.nome e self.opniao, sao referencias (instanciação)dos objetos antes apresentados: pessoa e texto.
O método __str__(), é mais um método mágico do Python, que determina o que será retornado do objeto.[1]
Perceba que este código sempre que invocado, ira inserir valores setados pelo usuário nos mesmo objetos, o que pra mim, é o segredo da OOP.
Finalizando
Bem, acho que deu para ter noção de como usar OOP em Python. Para maiores referencias sobre o assunto, aconselho visitar a Página da comunidade brasileira
Em breve, outras ferramentas Python... mas isto fica para um próximo post.
P.S.: Agradeço as correções sugeridas pelo amigo George, feitas no código, e ainda os ensinamentos sobre OOP.
Abraço a todos.
Related posts: