forked from luizomf/cursopython2023
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaula135.py
41 lines (34 loc) · 1.25 KB
/
aula135.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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())