Se você domina o básico de Python e quer começar a entrar no mundo intermediário/avançado, entender Classes e POO (Programação Orientada a Objetos) vai mudar completamente a forma como você pensa e escreve código.
Hoje vamos começar do zero:
- O que é um objeto
- O que é uma classe
- Como Python cria objetos automaticamente
- Diferença entre funções e métodos
- Exemplos práticos e claros
Vamos lá!
O que exatamente é um Objeto em Python?
A resposta simples:
No Python, tudo é um objeto.
Quando você cria algo assim:
x = 5
y = "hello"
Você pode pensar que “x é apenas um número” e “y é apenas uma string”.
Mas, na verdade:
-
x é um objeto do tipo
int -
y é um objeto do tipo
str
Vamos ver isso com type():
print(type(x)) # <class 'int'>
print(type(y)) # <class 'str'>
Isso significa:
-
O valor
5não é só “um número”: é uma instância da classeint -
O valor
"hello"é uma instância da classestr
Ou seja:
Classe → modelo/construção
Objeto → algo criado a partir dessa classe
Classes têm funcionalidades escondidas (métodos)
Você usa coisas como:
y.upper()
y.replace("h", "H")
…e talvez nunca tenha se perguntado:
“De onde vem esse .upper()?”
“Por que posso usar .replace() em uma string, mas não em um número?”
Porque esses métodos são criados dentro da classe str.
Se você tentar aplicar em um número:
x.upper()
Erro: AttributeError
Por quê?
Porque a classe int não tem esse método.
Simples assim.
Como ver todas as funções internas de uma classe? (super útil!)
Use a função help():
help(int)
Isso mostra TODOS os métodos do tipo inteiro.
Por exemplo:
-
__add__→ soma -
__sub__→ subtração -
__str__→ converter para texto -
etc.
Da mesma forma:
help(str)
Isso mostra todas as funções que você pode aplicar em strings.
Isso é excelente quando você não lembra como algo funciona.
Funções vs Métodos — Qual a diferença?
Função
Criada com def, recebe valores como argumentos.
def soma(x):
return x + 1
print(soma(5)) # 6
Método
Chamado a partir de um objeto, usando a sintaxe:
objeto.metodo()
Exemplo:
texto = "python"
print(texto.upper())
— Aqui upper() é um método
— Ele existe dentro da classe str
Método → ligado a um tipo
Função → independente
Um exemplo clássico: Turtle
Se você já programou com turtle, provavelmente já escreveu:
import turtle
tim = turtle.Turtle()
Aqui:
-
Turtleé uma classe -
timé um objeto (uma instância da classe Turtle)
Python faz isso o tempo todo, mesmo quando você não percebe.
Objetos também podem receber métodos com argumentos
Exemplo:
y = "string"
novo = y.replace("s", "")
print(novo) # tring
Aqui:
-
"s"→ 1º argumento -
""→ 2º argumento
Mas o método está sendo chamado a partir do objeto string.
Resumo até agora
- Tudo em Python é um objeto
- Todo objeto vem de uma classe
- Métodos são funções “presas” a objetos
- Você usa métodos todos os dias sem perceber
- Classes internas de Python têm código oculto que você pode explorar com
help() - Entender isso é essencial antes de criar suas próprias classes
Exercícios práticos (faça agora!)
🟦 Exercício 1
Use help() para descobrir métodos do tipo list.
help(list)
Agora tente usar 3 métodos que você encontrou.
🟩 Exercício 2
Explique (para você mesmo ou em voz alta) por que:
(5).upper()
dá erro.
🟨 Exercício 3
Crie uma função e um método e compare:
def dobrar(x):
return x * 2
num = 10
print(dobrar(num))
Agora tente:
num.append(5) # Deve dar erro
Por quê?
Copyright notice: Unless otherwise stated, all articles are original to this website. Please cite the source when sharing.
Article link: http://usandopy.com/programacao-orientada-a-objetos/entendendo-objetos-em-python/