Capítulo 9: Programação orientada à objetos
Nesse Capítulo no nosso “Livro de Python”, vamos falar sobre Programação Orientada a Objetos.
Para deixar nosso código mais limpo e simples podemos encapsular dados e funções definindo classes.
Vamos criar uma classe para contar o numero de participantes do Bootcamp da Neuron.
A classe terá um count para incrementar os participantes, um read_count para fazer a leitura da contagem e um reset para zerar a contagem.
Para definir uma classe, usamos a palavra-chave class:
Para receber todos os parâmetros necessários usamos um construtor chamado __init__
Convencionamos usar um parâmetro self para instância da classe.
class CountBootcamp:
def __init__(self, count = 0):
self.count = count
Veja algumas variáveis que podem chamar a classe:
click0 = CountBootcamp() # para iniciar count = 0
click1 = CountBootcamp(1) # para iniciar count = 1
click2 = CountBootcamp(10) # para iniciar count = 10
Implementando a API pública da classe:
class CountBootcamp:
def __init__(self, count = 0):
self.count = count
def click(self, xvezes = 1):
self.count += xvezes
def read(self):
return self.count
def reset(self):
self.count = 0fsdfas
Chamando a classe e suas funções:
click0 = CountBootcamp() # iniciando count = 0
click0.click() # count = 1
click0.click() # count = 2
click0.read() # retorna 2
click0.reset() # reseta count = 0
click0.read() # retorna 0
Podemos criar subclasses que herdam as funcionalidades de uma classe mãe.
Nesse exemplo vamos criar uma contador usando o CountBootcamp definindo o reset para não fazer nada:
class NoResetCount(CountBootcamp):
def reset(self):
pass
Chamando a subclasse e suas funções herdadas:
newclick = NoResetCount() # iniciando count = 0
newclick.read() # retorna 0
newclick.click() # count = 1
newclick.click() # count = 2
newclick.reset() # não faz nada
newclick.read() # retorna 2
Gostou do conteúdo? Siga a Neuron Ds&AI para mais conteúdos, curiosidades e artigos sobre ciência de dados!
Referências bibliográficas
(O’REILLY — ALTA BOOKS ,2021) “Data Science do Zero — Noções Fundamentais com Python” — Joel Grus