Agregação
This commit is contained in:
41
aula135.py
Normal file
41
aula135.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Relações entre classes: associação, agregação e composição
|
||||||
|
# Agregação é uma forma mais especializada de associação
|
||||||
|
# entre dois ou mais objetos. Cada objeto terá
|
||||||
|
# seu ciclo de vida independente.
|
||||||
|
# Geralmente é uma relação de um para muitos, onde um
|
||||||
|
# objeto tem um ou muitos objetos.
|
||||||
|
# Os objetos podem viver separadamente, mas pode
|
||||||
|
# se tratar de uma relação onde um objeto precisa de
|
||||||
|
# outro para fazer determinada tarefa.
|
||||||
|
# (existem controvérsias sobre as definições de agregação).
|
||||||
|
class Carrinho:
|
||||||
|
def __init__(self):
|
||||||
|
self._produtos = []
|
||||||
|
|
||||||
|
def total(self):
|
||||||
|
return sum([p.preco for p in self._produtos])
|
||||||
|
|
||||||
|
def inserir_produtos(self, *produtos):
|
||||||
|
# self._produtos.extend(produtos)
|
||||||
|
# self._produtos += produtos
|
||||||
|
for produto in produtos:
|
||||||
|
self._produtos.append(produto)
|
||||||
|
|
||||||
|
def listar_produtos(self):
|
||||||
|
print()
|
||||||
|
for produto in self._produtos:
|
||||||
|
print(produto.nome, produto.preco)
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
class Produto:
|
||||||
|
def __init__(self, nome, preco):
|
||||||
|
self.nome = nome
|
||||||
|
self.preco = preco
|
||||||
|
|
||||||
|
|
||||||
|
carrinho = Carrinho()
|
||||||
|
p1, p2 = Produto('Caneta', 1.20), Produto('Camiseta', 20)
|
||||||
|
carrinho.inserir_produtos(p1, p2)
|
||||||
|
carrinho.listar_produtos()
|
||||||
|
print(carrinho.total())
|
||||||
Reference in New Issue
Block a user