Fundamentos de POO em Python: Classes, Objetos, Herança e Construtores Explicados
Programação Orientada a Objetos (POO) em Python
O modelo de POO do Python permite que desenvolvedores modelam entidades do mundo real como objetos definidos por classes. A linguagem prioriza reutilização de código e modularidade, tornando simples criar e estender classes.
O que É uma Classe?
Uma classe é um contêiner lógico que agrupa dados (atributos) e comportamento (métodos). Ela define um template para objetos que compartilham propriedades comuns.
Exemplo: Uma classe Cliente poderia expor atributos como transacoes, saldo e divida, junto com métodos para depositar() ou sacar().
Definindo uma Classe em Python
Siga estes passos para criar uma classe simples:
- Use a palavra-chave
class:class MinhaClasse: pass - Defina métodos dentro da classe. O primeiro parâmetro de todo método de instância é
self, que se refere ao próprio objeto.class MinhaClasse: def saudacao(self): print("Olá da MinhaClasse") - Instancie a classe:
obj = MinhaClasse()
- Chame seus métodos:
obj.saudacao()
Exemplo completo:
# Exemplo funcional de uma classe Python
class MinhaClasse:
def metodo1(self):
print("Guru99")
def metodo2(self, texto):
print("Teste de Software: " + texto)
def main():
c = MinhaClasse()
c.metodo1()
c.metodo2(" Testes são divertidos")
if __name__ == "__main__":
main()
Herança em Python
Herança permite que uma classe derivada reutilize e estenda o comportamento de uma classe base. Python suporta herança simples e múltipla.
class Base:
def saudacao(self):
print("Olá da Base")
class Derivada(Base):
def saudacao(self):
super().saudacao()
print("Olá da Derivada")
# Uso
obj = Derivada()
obj.saudacao()
Pontos-chave:
- Classes derivadas herdam atributos e métodos automaticamente.
- Sobrescreva métodos definindo um método com o mesmo nome na subclasse.
- Chame um método pai explicitamente com
ClassePai.metodo(self, ...)ousuper().metodo().
Construtores: __init__
O método __init__ inicializa novos objetos com valores predefinidos.
class Usuario:
def __init__(self, nome):
self.nome = nome
def dizer_ola(self):
print(f"Bem-vindo ao Guru99, {self.nome}")
usuario = Usuario("Alex")
usuario.dizer_ola()
Saída: Bem-vindo ao Guru99, Alex
Python 2 vs Python 3
Existem apenas diferenças menores de sintaxe. O exemplo acima funciona em ambas as versões com declarações print apropriadas.
Principais Conclusões
- Classes agrupam dados e comportamento, definidas com a palavra-chave
class. - Métodos de instância usam
selfpara referenciar o objeto. - Herança promove reutilização de código e pode ser simples ou múltipla.
- Construtores (
__init__) definem estado inicial para novos objetos. - A sintaxe flexível do Python e o tratamento em tempo de execução de
selftornam a POO intuitiva.
python
- Classes e Objetos em C#: Fundamentos para POO Robusta
- Dominando Programação Orientada a Objetos em Python: Classes, Herança, Encapsulamento e Polimorfismo
- Dominando Herança em Python: Conceitos, Sintaxe e Exemplos Práticos
- Construa um Robô com Raspberry Pi e Python: Guia Completo
- C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso
- Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
- Counter do Python em collections: Contagem Eficiente, Atualização e Operações Aritméticas
- Entendendo type() e isinstance() em Python: Exemplos Práticos
- Python List index(): Como Encontrar Posições de Elementos com Exemplos Práticos
- Dominando Java: Entendendo Objetos, Classes e Conceitos Fundamentais de POO