Rozdział 14 · Tworzenie rzeczywistych obiektów

Mini Projekt: Koszyk v2

Lista słowników z rozdziału 12 staje się listą przedmiotów Tovar w Korzina.

Mini Projekt: Koszyk v2

W rozdziale 12 koszyk zakupowy był przechowywany jako lista słowników. Teraz mamy narzędzia, aby go uczynić bardziej niezawodnym: klasa Tovar dla jednego towaru i klasy Korzina, który przechowuje LISTĘ obiektów Tovar jest składem z sekcji 14.13 w praktyce.

korzina_v2.py
class Tovar:
    def __init__(self, nazvanie, tsena):
        self.nazvanie = nazvanie
        self.tsena = tsena


class Korzina:
    def __init__(self):
        self.tovary = []      atrybut # INSTANCJA - Rozdział 14.8!

    def dobavit_tovar(self, tovar):
        self.tovary.append(tovar)

    def obshchaya_summa(self):
        return sum(t.tsena for t in self.tovary)

    def kolichestvo_tovarov(self):
        return len(self.tovary)
KorzinaTovarHAS-A (LISTA)
Korzina przechowuje lista przedmioty Tovar
ispolzovanie.py
korzina = Korzina()
korzina.dobavit_tovar(Tovar(„Book”, 590))
korzina.dobavit_tovar(Tovar(„Uchwyt”, 90))

print(korzina.kolichestvo_tovarov())   # 2
print(korzina.obshchaya_summa())        # 680
Dlaczego jest lepszy niż słownik
Blisko obiektu Tovar zawsze jest dokładnie nazvanie oraz tsena — literówka w kluczu słownika (tovar["cena"] zamiast tovar["tsena"]) zostanie wykryta dopiero w czasie wykonywania, a odwołanie do nieistniejącego atrybutu obiektu — również w czasie wykonywania, ale z klasą łatwiej dodać sprawdzenia i metody (liczenie sumy, rabat) w jednym zrozumiałym miejscu.
★★ Zadanie samodzielne
udalit_tovar

Dodaj Korzina udalit_tovar(self metodę nazvanie), która usuwa pierwszy produkt o tej nazwie z self.tovary.

Praktyka: Koszyk v2
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →