Kelly
R. M. Porto e Ediana Reis
LINGUAGEM
DE PROGRAMAÇÃO ORIENTADA A OBJETOS PYTHON
O
que é linguagem de programação orientada a objetos-Programação Orientada a
Objetos (também conhecida pela sua sigla POO) é um modelo de análise,
projeto e programação de software baseado na composição e interação
entre diversas unidades chamadas de 'objetos'. Java script e Lua são exemplos
de linguagens cuja POO é realizada por protótipos.
Uma
classe consiste da palavra chave class seguida de seu nome e da
classe herdada entre parênteses.
Ex: class
Carro (object): pass
Mas
é uma convenção comum sempre herdar de object, a não ser, obviamente, que
você decida herdar de outra classe.
As
classes antigas que não seguem esse estilo são consideradas "old
style".
Instanciando
Para
instanciar a classe não é preciso o operador new muito comum em
outras linguagens.
Fusca
= Carro()
Instâncias Abertas
Instâncias
podem receber atributos (propriedades) dinamicamente, por isso às vezes é útil
criar classes vazias. (Luciano Ramalho)
Em
outras palavras, podemos definir as propriedades dinamicamente.
class
Carro(object):
pass
Fusca
= Carro(object)
fusca.estado
= "novo"
print(fusca.estado)
# novo
O
atributo definido dessa forma é considerado da instância.
Atributos da classe
Podemos
definir a propriedade (o atributo) na classe.
class
Carro(object):
estado
= "novo"
print(Carro.estado)
# 'novo'
Note
bem o código acima, reparou que não precisamos instanciar a classe ?
Simplesmente acessamos o atributo (que é da classe) diretamente Carro.estado.
Por
outro lado, repare que a propriedade também se encontra disponível nas
instâncias.
c =
Carro()
print(c.estado)
# novo
Em
Python precisamos atentar que "as coisas" ou são da classe ou são da
instância.
self explícito
Esta
é uma peculiaridade da linguagem.
Fazemos
referência a classe através da palavra self e todo método deve
aceitar como (primeiro) parâmetro a palavra self que se refere ao
próprio objeto.
class
Carro(object):
def dirigir(self):
self.estado = "usado"
c =
Carro()
print(c.estado)
# AttributeError: 'Carro' object has no attribute 'estado'
c.dirigir()
print(c.estado)
# 'usado'
Podemos
alterar as propriedades através dos métodos.
class
Carro(object):
estado = "novo"
def dirigir(self):
self.estado = "usado"
#
# 1
exemplo
#
porsche
= Carro()
porsche.dirigir()
print(porsche.estado)
# usado
#
# 2
exemplo
#
ferrari
= Carro()
print(ferrari.estado)
# novo
Método construtor __init__
Abaixo,
criamos a classe Carro com um método construtor __init__. Neste
exemplo, somos obrigados a instanciar a classe passando exatamente um
parâmetro, nem mais nem menos.
class
Carro(object):
def __init__(self, estado):
self.estado = estado
bmw
= Carro('semi-novo')
print(bmw.estado)
# 'semi-novo'
Herança
class
Veiculo(object):
estado = "novo"
class
Carro(Veiculo):
pass
bmw
= Carro()
print(bmw.estado)
# 'novo'
Referência:
devfuria.com.br/python/programacao-orientada-objetos/
Comentários
Postar um comentário