O que é POO?

Introdução à programação orientada a objetos em Python

George Boorman

Curriculum Manager, DataCamp

Programação procedural

 

  • Código como uma sequência de etapas
  • Ótima para análise de dados

Escadas

1 Fonte da imagem: https://unsplash.com/@tateisimikito
Introdução à programação orientada a objetos em Python

Pensando em sequências

 

ícones de uma pessoa na cama, depois um café e depois uma pasta

 

vários ícones representando muitas atividades

Introdução à programação orientada a objetos em Python

Programação procedural

 

  • Código como sequência de etapas
  • Ótima para análise de dados

Programação orientada a objetos

 

  • Código como interações entre objetos
  • Ótima para construir software
  • Código manutenível e reutilizável!
Introdução à programação orientada a objetos em Python

Objetos

$$\Large{\text{Objeto = dados + funcionalidades}}$$

silhueta de uma pessoa com laptop representando um cliente

                                                  Estado - dados do objeto

                                                  Comportamento - funcionalidades do objeto

Introdução à programação orientada a objetos em Python

Objetos em Python

  • Tudo em Python é um objeto
Objeto Tipo
5 int
"Hello" str
pd.DataFrame() DataFrame
sum() function
... ...
Introdução à programação orientada a objetos em Python

Classes como moldes

  • Classe: um molde para objetos com estados e comportamentos possíveis

classe cliente

Introdução à programação orientada a objetos em Python

Classes como moldes

  • Classe: um molde para objetos com estados e comportamentos possíveis

classe cliente ramificando em objetos cliente

Introdução à programação orientada a objetos em Python

Classes em Python

  • Objetos Python do mesmo tipo se comportam do mesmo jeito
  • lists são uma classe
    • Criadas com valores separados por vírgula [1, 2, 3, 4, 5]
    • Têm os mesmos métodos, ex.: .append()
  • Use type() para ver a classe
type([1, 2, 3, 4, 5])
<class 'list'>
Introdução à programação orientada a objetos em Python

Atributos e métodos

Estado ↔ atributos
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# atributo shape df.shape
(3, 2)
  • Use obj. para acessar atributos e métodos
Comportamento ↔ métodos
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# método head df.head()
   a  b
0  1  4
1  2  5
2  3  6
Introdução à programação orientada a objetos em Python

Exibindo atributos e métodos

# Exibir atributos e métodos
dir([1, 2, 3, 4])
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
# Exibir atributos e métodos
dir(list)
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
Introdução à programação orientada a objetos em Python

Resumo rápido

Termo Definição
Classe Um molde/modelo usado para criar objetos
Objeto Combinação de dados e funcionalidades; uma instância de classe
Estado Dados de um objeto, definidos por atributos
Comportamento Funcionalidades de um objeto, definidas por métodos
Introdução à programação orientada a objetos em Python

Vamos revisar!

Introdução à programação orientada a objetos em Python

Preparing Video For Download...