Код IT
← Каталог

Рекомендации по разработке на Python — Управление состоянием и мутабельностью

Фрагмент из «Рекомендации по разработке на Python»: Управление состоянием и мутабельностью.

Python main.py
from dataclasses import dataclass
from typing import List

@dataclass(frozen=True)
class OrderItem:
    product_id: str
    quantity: int
    price: float

@dataclass(frozen=True)
class Order:
    id: str
    user_id: str
    items: List[OrderItem]
    status: str
    
    @property
    def total(self) -> float:
        return sum(item.quantity * item.price for item in self.items)
from dataclasses import dataclass
from typing import List

@dataclass(frozen=True)
class OrderItem:
    product_id: str
    quantity: int
    price: float

@dataclass(frozen=True)
class Order:
    id: str
    user_id: str
    items: List[OrderItem]
    status: str
    
    @property
    def total(self) -> float:
        return sum(item.quantity * item.price for item in self.items)