Classes e Objetos em Python: Fundamentos de Programação Orientada a Objetos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Programação Orientada a Objetos em Python

A Programação Orientada a Objetos (POO) é uma das principais paradigmas da programação moderna. O Python oferece suporte completo à POO, tornando-se uma ferramenta poderosa tanto para iniciantes quanto para programadores profissionais.

A POO ajuda a modelar o mundo real, melhora a legibilidade do código, permite o reuso de componentes e gerencia a complexidade dos projetos. Os conceitos fundamentais da orientação a objetos são classes e objetos, além dos princípios básicos: herança, encapsulamento e polimorfismo.

Essa abordagem estrutura o programa como um conjunto de objetos que interagem entre si, onde cada objeto é uma instância de uma classe específica. Isso torna o código mais modular, compreensível e fácil de manter.

Fundamentos de Classes e Objetos em Python

Definição de Classe e Objeto

Uma classe é um modelo ou molde para criar objetos. Ela define a estrutura de dados e os métodos que estarão disponíveis para todos os objetos desse tipo.

Um objeto é uma instância concreta de uma classe, que possui seus próprios dados e pode executar as ações definidas na classe.

class Carro:
    def dirigir(self):
        print("O carro está andando")

meu_carro = Carro()  # objeto (instância da classe)
meu_carro.dirigir()

No código acima, a classe Carro define o molde para criar objetos de carros. O método dirigir() descreve o comportamento disponível para todas as instâncias dessa classe.

Estrutura de uma Classe em Python

A estrutura básica de uma classe em Python é a seguinte:

class NomeDaClasse:
    def __init__(self, argumentos):
        self.propriedades = valores
    
    def metodo(self):
        ações

Os componentes importantes de uma classe incluem:

  • init — o construtor da classe, chamado automaticamente ao criar um novo objeto
  • self — parâmetro especial que representa a referência à instância atual do objeto
  • Atributos — variáveis que armazenam os dados do objeto
  • Métodos — funções definidas dentro da classe e associadas ao objeto

Criação e Uso de Classes

Exemplo Prático de Criação de Classe

Vamos criar a classe Pessoa, que modela uma pessoa:

class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade
    
    def saudacao(self):
        print(f"Olá, meu nome é {self.nome}")
    
    def obter_info(self):
        return f"Nome: {self.nome}, Idade: {self.idade}"

p = Pessoa("Ana", 30)
p.saudacao()
print(p.obter_info())

Neste exemplo, o construtor init recebe os parâmetros nome e idade, que são salvos como atributos da instância. Os métodos saudacao() e obter_info() fornecem funcionalidades para trabalhar com os dados do objeto.

Criação de Instâncias de Classe

O processo de criar uma instância de classe em Python ocorre chamando a classe como se fosse uma função:

p1 = Pessoa("João", 25)
p2 = Pessoa("Maria", 28)

print(p1.nome)  # João
print(p1.idade) # 25
print(p2.nome)  # Maria

Cada chamada ao construtor da classe cria um novo objeto independente, com seus próprios atributos e estado.

Atributos em Classes Python

Atributos de Instância

Os atributos de instância são únicos para cada objeto. Eles são criados e inicializados no método init e podem ser alterados durante a execução do programa:

class Aluno:
    def __init__(self, nome, nota):
        self.nome = nome
        self.nota = nota
    
    def atualizar_nota(self, nova_nota):                

Blogs

Book Recommendations