Classes Python e programação orientada a objetos

Uma introdução completa às classes, objetos, herança e conceitos OOP do Python. Crie modelos de dados robustos e dimensione seus aplicativos Python.

Experimente no Editor

Visão geral

A Programação Orientada a Objetos (OOP) é um paradigma de programação poderoso utilizado fortemente em Python para estruturar aplicativos grandes e complexos. Ao contrário da programação processual, que se concentra na escrita de funções sequenciais, a OOP gira em torno do conceito de “objetos”. Um objeto é uma unidade independente que agrupa dados (conhecidos como atributos) e comportamentos (conhecidos como métodos).

Uma `classe` em Python atua como um modelo ou modelo para a criação de objetos. Pense em uma aula como a planta arquitetônica de uma casa. A planta em si não é uma casa, mas define como será a casa e quais características ela possui. Ao instanciar uma classe, você cria um “objeto” ou “instância” tangível construído a partir desse modelo. Você pode criar centenas de instâncias exclusivas de uma única classe.

Central nas classes Python é o método `__init__()`, frequentemente chamado de construtor. Este método especial é executado automaticamente no exato momento em que um novo objeto é criado a partir de uma classe. É responsável por inicializar o estado padrão do objeto, anexando atributos específicos a ele. O parâmetro `self` é obrigatoriamente passado para métodos de instância, atuando como uma referência ao objeto específico que está sendo manipulado.

Um dos pilares mais fortes da OOP é a herança. A herança permite criar uma nova classe (uma classe filha) que herda todos os atributos e métodos de uma classe existente (uma classe pai). Isso promove a reutilização massiva de código. Por exemplo, você pode ter uma classe genérica `Vehicle` e, em seguida, criar classes filhas `Car` e `Truck` que herdam de `Vehicle`, mas adicionam seus próprios comportamentos específicos.

Outro conceito central é o Encapsulamento, a ideia de ocultar o estado interno de um objeto e exigir que toda interação ocorra por meio de métodos designados. Embora Python não tenha modificadores de acesso estritos como `private` ou `protected`, ele depende de convenções de nomenclatura (como prefixar uma variável com um sublinhado `_`) para sinalizar que um atributo não deve ser manipulado diretamente de fora da classe.

Saída de código e execução

Definir uma representação estrita de uma instância do objeto Car e utilizar métodos de classe para alterar os dados da instância local.

oop_example.py
Experimente no Editor
class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model
        self.is_running = False

    def start(self):
        self.is_running = True
        return f"{self.make} {self.model} has started."

my_car = Car("Toyota", "Corolla")
print(my_car.make)
print(my_car.start())
Saída terminal
Toyota
Toyota Corolla has started.

Implementação passo a passo

  • Modelagem de entidades do mundo real (usuários, produtos, carrinhos)
  • Construindo motores de jogo e sistemas de componentes de entidade
  • Criando componentes de interface gráfica do usuário reutilizáveis

Perguntas frequentes

O que significa “eu”?

"self" representa a instância da classe. Usando a palavra-chave “self” podemos acessar os atributos e métodos da classe em python.

Python oferece suporte a herança múltipla?

Sim, Python permite que uma classe herde de várias classes pai.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.