مثال حلشده
پیشرفته فروشگاه کوچک
صورت مسئله
از کجا شروع میکنی و هر بخشِ دوره کجای این پروژه مینشیند؟
راهحل گامبهگام
۴ گام باقی مانده
import json, queue, threading
from dataclasses import dataclass, asdict
@dataclass
class Product:
sku: str
name: str
price: float
DISCOUNTS = {"normal": lambda a: a, "student": lambda a: a * 0.7}
class Cart:
def __init__(self):
self.items = []
def add(self, product, qty=1):
if qty <= 0:
raise ValueError("تعداد باید مثبت باشد.")
self.items.append({"product": product, "qty": qty})
def total(self, kind="normal"):
raw = sum(i["product"].price * i["qty"] for i in self.items)
try:
return DISCOUNTS[kind](raw)
except KeyError:
raise ValueError(f"تخفیف ناشناخته: {kind}")
def save(products, path):
with open(path, "w", encoding="utf-8") as f:
json.dump([asdict(p) for p in products], f, ensure_ascii=False, indent=2)
cart = Cart()
cart.add(Product("b1", "کتاب", 12000), 2)
print(cart.total("student")) # 16800.0