Skip to content

lucasrmagalhaes/oo-py

Repository files navigation

Python e Orientação a Objetos

Conta
Cliente
Desafio: Data
Desafio: Retângulo
SOLID
Data Model
Anotações


Conta

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']

Cliente

from introducao_a_orientacao_a_objetos.cliente import Cliente
cliente = Cliente("lucas")
cliente.nome = "fulano"
cliente.nome

Desafio: Data

from introducao_a_orientacao_a_objetos.datas import Data
d = Data(19, 2, 2022)
d.formatada()

Desafio: Retângulo

from introducao_a_orientacao_a_objetos.retangulo import Retangulo
r = Retangulo(7, 6)
r.area = 7
r.obter_area()

SOLID

S - Single responsibility principle
O - Open/closed principle
L - Liskov substitution principle
I - Interface segregation principle
D - Dependency inversion principle


Data Model

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

Anotações

 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