Conceitos Básicos de Python: Programação Orientada a Objetos (OOP)
Conceitos Básicos de Python: Programação Orientada a Objetos (POO)
Lesson 1 of 7 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Introdução à Programação Orientada a Objetos em Python
Programação Orientada a Objetos (POO) é um paradigma de programação que permite representar conceitos do mundo real em termos de objetos — coisas que têm características específicas (dados) e comportamentos (ações).
Pense em um objeto como uma coisa autocontida no seu programa que agrupa dados e ações em um só lugar — como um smartphone que você possui: ele tem dados (marca, modelo, nível da bateria) e pode realizar ações (tirar uma foto, fazer uma ligação, tocar música). No código, esses dados ficam em atributos (por exemplo, battery_level), e as ações são métodos (por exemplo, take_photo()); juntos formam uma unidade coerente que você pode criar, configurar e usar.
A classe é o modelo (o projeto do celular), e o objeto é uma instância real e individual construída a partir desse modelo (seu celular específico com sua bateria e fotos atuais). Cada objeto mantém seu próprio estado, então dois objetos da mesma classe podem ter valores diferentes ao mesmo tempo, e eles interagem chamando os métodos uns dos outros em vez de acessar diretamente os detalhes internos — essa ideia é chamada encapsulamento, e ajuda a organizar o código, reduzir bugs e entender o comportamento.
Quando você cria um objeto, o Python normalmente executa init para definir seu estado inicial; depois, você pede para o objeto fazer coisas chamando seus métodos, que podem ler ou atualizar seus atributos conforme necessário. Se você já fez um jogo, imagine um Player com saúde e posição que pode move() e jump(); em um aplicativo web, um User com nome e password_hash que pode authenticate() e update_profile().
Isso é tudo que um objeto é: dados + comportamento, vivendo juntos, criados a partir de uma classe e prontos para trabalhar para você.
Em Python, tudo é um objeto. Isso significa que o código é escrito em torno de objetos e suas interações, fazendo da POO parte central do Python e um recurso importante em bibliotecas e frameworks populares como Django, Flask e até muitos game engines.
Nesta lição, exploraremos os conceitos básicos da POO em Python e aprenderemos a usá-los para criar nossos próprios objetos.
Classes e Objetos
A POO em Python é construída em torno de classes e objetos:
- Uma classe é um modelo ou definição para um tipo de objeto. Ela descreve quais propriedades (chamadas atributos) e quais comportamentos (chamados métodos) aquele tipo de objeto terá.
- Um objeto é uma instância de uma classe — é como uma versão real do modelo, com dados reais armazenados em seus atributos.
1.1. Criando uma Classe
Para criar uma classe em Python, use a palavra-chave class, seguida pelo nome da classe e dois pontos.
Exemplo:
class Person:
pass
Aqui criamos uma classe chamada Person.
A instrução pass é um marcador — diz ao Python "não faça nada aqui" até adicionarmos código real mais tarde.
DICA: Por convenção, nomes de classe usam PascalCase (cada palavra começa com letra maiúscula).
Atributos e Métodos
Uma classe pode ter:
- Atributos — variáveis que guardam informações sobre o objeto.
- Métodos — funções que definem ações que o objeto pode executar.
2.1. Adicionando Atributos
Para definir atributos ao criar um objeto, declaramos eles dentro de um método especial chamado __init__ (pronuncia-se "dunder init" — abreviação de double underscore init).
O __init__ é executado automaticamente toda vez que você cria um novo objeto a partir da classe.
Ele serve para inicializar os atributos do objeto com valores iniciais.
Exemplo:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
O que acontece aqui:
- O primeiro parâmetro,
self, é uma referência ao objeto específico sendo criado. - Os outros parâmetros (
name,age) são valores passados ao criar o objeto. self.nameeself.agesão atributos da instância que armazenam os dados dentro do objeto.
IMPORTANTE!: self deve ser sempre o primeiro parâmetro dos métodos de instância — ele permite acessar os próprios atributos e métodos do objeto.
2.2. Adicionando Métodos
Métodos são funções que pertencem a uma classe. Geralmente, executam ações que usam ou alteram os atributos do objeto.
Exemplo:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Olá, meu nome é {self.name} e tenho {self.age} anos.")
Aqui:
- Adicionamos um método chamado
greet. - Ele usa os próprios atributos do objeto (
self.nameeself.age) para mostrar uma mensagem personalizada.
Criando e Usando Objetos
Depois de definir uma classe, você pode criar objetos dela como se chamasse uma função — mas usando o nome da classe.
Exemplo:
person1 = Person("Alice", 30)
person1.greet()
Saída:
Olá, meu nome é Alice e tenho 30 anos.
Conclusão
Nesta lição, você aprendeu:
- A diferença entre classes e objetos.
- Como usar
__init__para configurar atributos ao criar objetos. - Como definir métodos que permitem que objetos executem ações.
Esta é a base da POO em Python. Na próxima, vamos aprofundar explorando herança — uma forma de criar novas classes que estendem as já existentes.