Conta
Cliente
Desafio: Data
Desafio: Retângulo
SOLID
Data Model
Anotações
from introducao_a_orientacao_a_objetos.conta import Conta
conta = Conta(123, "Lucas", 55.5, 1000.0)
conta.extrato()
conta.deposita(60.0)
conta.saca(20.0)
conta2 = Conta(321, "Fulano", 50.0, 1000.0)
conta.transfere(10.0, conta2)
conta.get_saldo()
conta.get_titular()
conta.set_limite(2000.0)
conta.get_limite()
Conta.codigo_banco()
codigos = Conta.codigos_bancos()
codigos
codigos['BB']
from introducao_a_orientacao_a_objetos.cliente import Cliente
cliente = Cliente("lucas")
cliente.nome = "fulano"
cliente.nome
from introducao_a_orientacao_a_objetos.datas import Data
d = Data(19, 2, 2022)
d.formatada()
from introducao_a_orientacao_a_objetos.retangulo import Retangulo
r = Retangulo(7, 6)
r.area = 7
r.obter_area()
S - Single responsibility principle
O - Open/closed principle
L - Liskov substitution principle
I - Interface segregation principle
D - Dependency inversion principle
Inicialização __init__ Representação __str__ __repr__ Container, sequência __contains__ __iter__ __len__ __getitem__ Numéricos __add__ __sub__ __mul__ __mod__
Inicialização obj = Novo() Representação print(obj) str(obj) repr(obj) Container, sequência len(obj) item in obj for i in obj obj[2:3] Numéricos obj + outro_obj obj * obj
Uma classe é uma especificação de um tipo, definindo valores e comportamentos.
Um objeto é uma instância de uma classe onde podemos definir valores para seus atributos.
Uma boa analogia é considerar a classe como a receita para a criação de algum prato; por exemplo, um delicioso bolo de cenoura.
Os atributos são as características que especificam uma classe.
Os mixins são classes herdadas que não precisam ser instanciadas e contém preocupações comuns a diversas classes.
Podemos usar composição para substituir herança como boa prática de orientação a objetos.
title - Pega a primeira letra de cada palavra e coloca em maiúsculo.
ABC - Abstract Base Classes
MRO - Method Resolution Order