opp Flashcards
(18 cards)
O que são métodos?
São funções dentro de uma classe que representam comportamentos dos objetos.
- Instância: usa self
(objeto específico).
- Classe: usa cls
com @classmethod
.
- Estático: usa @staticmethod
e não depende de instância ou classe.
Métodos de Instância
- Acessam atributos do objeto via
self
. - Usados para modificar/consultar dados de cada instância.
def depositar(self, valor):
self.saldo += valor
Métodos de Classe
- Usam
@classmethod
e recebemcls
. - Usados para alterar dados da classe, não de uma instância.
@classmethod
def atualizar_taxa(cls, nova_taxa):
cls.taxa = nova_taxa
Métodos Estáticos
- Usam
@staticmethod
, sem self nem cls. - Usados para funções auxiliares que não dependem da classe.
@staticmethod
def converter(valor):
return valor / 5
Métodos Privados (__nome)
- Começam com dois underscores.
- Só devem ser usados dentro da classe.
python
CopiarEditar
def __atualizar_saldo(self, valor):
self.__saldo += valor
Objetos
- Instâncias de uma classe.
- Representam algo real com atributos + comportamentos.
Encapsulamento
- Esconde dados sensíveis (ex.:
\_\_senha
). - Protege atributos com
\_\_
e usa@property
e@setter
para controle.
Abstração
- Esconde detalhes técnicos e mostra só o necessário.
- Exemplo: botão “salvar” que esconde o código por trás.
Herança
- Uma classe herda atributos/métodos de outra.
- Reaproveita código base.
class Cliente(Pessoa):
def __init__(self, nome, renda):
super().__init__(nome)
Sobrescrita de Métodos (Overriding)
Quando uma subclasse redefine um método da superclasse.
class Cliente(Pessoa):
def __init__(self, nome, renda):
super().__init__(nome)
Propriedades (@property)
Permitem ler e alterar atributos privados com controle.
@property
def limite(self):
return self.__limite
@limite.setter
def limite(self, novo):
self.__limite = novo
super()
O que é? Quando usar?
- Função usada para acessar métodos e atributos da superclasse.
- Evita repetição de código em herança.
- Quiser reaproveitar o
\_\_init\_\_
da classe pai. - Precisar complementar métodos herdados.
class Pessoa:
def __init__(self, nome):
self.nome = nome
class Estudante(Pessoa):
def __init__(self, nome, curso):
super().__init__(nome) # Chama o init da superclasse
self.curso = curso
Herança Múltipla O que é? Quando usar?
Uma classe herda de duas ou mais classes ao mesmo tempo.
- Quiser combinar funcionalidades diferentes.
- Evitar repetição de código de várias origens.
class Voar:
def voar(self): return “Voando”
class Nadar:
def nadar(self): return “Nadando”
class Pato(Voar, Nadar):
pass
MRO (Method Resolution Order) O que é? Quando usar?
Ordem em que o Python procura os métodos em uma herança múltipla.
- Quiser entender qual método será executado primeiro.
- Resolver conflitos entre métodos herdados.
Polimorfismo O que é? Quando usar?
Permite que métodos com o mesmo nome tenham comportamentos diferentes em classes distintas.
Quiser que diferentes objetos respondam de forma diferente ao mesmo método.
class Animal:
def som(self): return “Algum som”
class Cachorro(Animal):
def som(self): return “Latido”
Métodos Mágicos (Dunder Methods) O que são? Quando usar?
- Métodos com dois underlines (
\_\_
) no início e no fim. - Servem para personalizar comportamentos de objetos.
- Criar, exibir, somar, deletar ou comparar objetos.
\_\_init\_\_ Construtor |
|
__repr__ Representação para o desenvolvedor |
| \_\_str\_\_
Representação para o usuário final |
| \_\_len\_\_
Retorna tamanho |
| \_\_del\_\_
Deleta objeto da memória |
| \_\_add\_\_
Soma entre objetos |
| \_\_mul\_\_
Multiplicação de atributos |
Módulo datetime O que é? Quando usar?
Módulo interno do Python para datas e horários.
- Quiser obter ou manipular data/hora atual.
- Converter ou formatar datas.
from datetime import datetime
agora = datetime.now()
print(agora.year, agora.month, agora.day)