Saltar al contenido

Proyecto: carrito de compras

Python · Unidad 14: Clases modernas

Vas a armar un carrito de compras. Un Producto tiene nombre y precio, y una Linea junta un producto con la cantidad que llevas.

Lo que cuesta una línea no se guarda: se calcula con una @property, así siempre va de acuerdo con la cantidad.

from dataclasses import dataclass

@dataclass
class Producto:
    nom: str
    precio: int

@dataclass
class Linea:
    prod: Producto
    cant: int

    @property
    def subtotal(self):
        pre = self.prod.precio
        return pre * self.cant

pan = Producto("pan", 20)
print(Linea(pan, 3).subtotal)

Imprime

60

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Completa el código

    Tres panes de 20. Completa para que imprima 60.

  2. 2. Escribe el código

    Escribe los tres métodos de Carrito. agregar(prod, cant): guarda una Linea nueva en self.lineas. total: una @property que suma los subtotales. __len__: cuántas líneas tiene el carrito. probar ya está escrita y regresa las dos cosas.

  3. 3. Escribe el código

    Escribe a_pagar(c, envio): regresa el total del carrito más lo que cuesta ese envío, pero si el total llega a 500 el envío no se cobra. probar arma el carrito y elige el envío por su valor.

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →