opp Flashcards

(18 cards)

1
Q

O que são métodos?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Métodos de Instância

A
  • Acessam atributos do objeto via self.
  • Usados para modificar/consultar dados de cada instância.
    def depositar(self, valor):
    self.saldo += valor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Métodos de Classe

A
  • Usam @classmethod e recebem cls.
  • Usados para alterar dados da classe, não de uma instância.
    @classmethod
    def atualizar_taxa(cls, nova_taxa):
    cls.taxa = nova_taxa
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Métodos Estáticos

A
  • Usam @staticmethod, sem self nem cls.
  • Usados para funções auxiliares que não dependem da classe.
    @staticmethod
    def converter(valor):
    return valor / 5
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Métodos Privados (__nome)

A
  • Começam com dois underscores.
  • Só devem ser usados dentro da classe.
    python
    CopiarEditar
    def __atualizar_saldo(self, valor):
    self.__saldo += valor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Objetos

A
  • Instâncias de uma classe.
  • Representam algo real com atributos + comportamentos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Encapsulamento

A
  • Esconde dados sensíveis (ex.: \_\_senha).
  • Protege atributos com \_\_ e usa @property e @setter para controle.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Abstração

A
  • Esconde detalhes técnicos e mostra só o necessário.
  • Exemplo: botão “salvar” que esconde o código por trás.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Herança

A
  • Uma classe herda atributos/métodos de outra.
  • Reaproveita código base.
    class Cliente(Pessoa):
    def __init__(self, nome, renda):
    super().__init__(nome)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Sobrescrita de Métodos (Overriding)

A

Quando uma subclasse redefine um método da superclasse.
class Cliente(Pessoa):
def __init__(self, nome, renda):
super().__init__(nome)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Propriedades (@property)

A

Permitem ler e alterar atributos privados com controle.
@property
def limite(self):
return self.__limite

@limite.setter
def limite(self, novo):
self.__limite = novo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

super() O que é? Quando usar?

A
  • 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Herança Múltipla O que é? Quando usar?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

MRO (Method Resolution Order) O que é? Quando usar?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Polimorfismo O que é? Quando usar?

A

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”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Métodos Mágicos (Dunder Methods) O que são? Quando usar?

A
  • 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 |

17
Q

Módulo datetime O que é? Quando usar?

A

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)