Salve a tutti sto provando a capire dove è il problema nel mio codice riguardante un esercizio potete aiutarmi?
testo:
definire una classe per modellare un carrello acquisti di uno shop online. definire una classe per modellare un item vendita con ID e prezzo.
Il carrello deve contenere una lista di oggetti item, un ID e l' ID_utente:
-scrivere un metodo per il carrello che calcoli il totale del costo degli oggetti
- scrivere un metodo per il carrello che aggiunga un item al carrello
(il problema che non comprendo è come mai il metodo total non funziona dicendomi che class item non ha come attributo prezzo)
class item :
def __init__(self, ID_oggetto, prezzo):
self.ID_oggetto = ID_oggetto
self.prezzo = prezzo
def scheda_oggetto(self):
return f"{self.ID_oggetto} {self.prezzo}"
class shop:
def __init__(self, ID, ID_utente, items):
self.ID = ID
self.ID_utente = ID_utente
self.items = []
def total(self):
if (len(self.items)>0):
return sum(item.prezzo)
def add_item ( self, item):
if item:
self.items.append(item)
else:
print('non ho nuovi item')
def main():
c = ' '
carrello = []
while len(c)>0:
print(' ISTRUZIONI ')
print('i) inserisci categoria')
print('a) aggiungi item 1')
print('b) aggiungi item 2')
print('z) stampa spesa totale')
print('v) stampa tutti')
c = input('scegli: ')
if c == 'i':
n = input('ID: ') # numero id carrello
l = input ('ID_utente: ')# es.giulio.busolini
m = input ('items: ') # es. articoli vari
s = shop(n,l,m)
carrello.append(s)
elif c == 'a':
for s in carrello:
print ('aggiungi a carrello: ')
k = input ("id_oggetto: ") # es. fionda
d = input("prezzo: ")# es. 12
d = int(d)
z = item(k,d)
s.add_item(z)
z.scheda_oggetto
elif c == 'b':
print('aggiungi a carrello: ')
f = input('id_oggetto: ')# es. yo-yo
w = input('prezzo: ')# es. 3
w = int(w)
u = item(f,w)
s.add_item(u)
elif c == 'z':
somma = s.total()
print(somma)
elif c == 'v':
for s in carrello :
print(s.ID, s.ID_utente,m, z.scheda_oggetto())
print(s.ID,s.ID_utente,m, u.scheda_oggetto())