-
Notifications
You must be signed in to change notification settings - Fork 2
Tema 2
-
Creează clasa
BookStore
care primește la inițializare un URL către un document XML cu acest format. Această clasă va avea atributulbooks
- o listă de obiecteBook
, cu următoarele atribute:title
,author
,publisher
,language
,isbn
,quantity
,pages
,price
,publication_date
,category
ale căror valori sunt preluate din sursa de date și convertite la tipul de date corespunzător. -
Implementează metoda
search
care va căuta un substring în titlurile cărților din librărie și va returna prima carte care corespunde căutării sauNone
dacă nu a găsit niciun rezultat. Această metodă va funcționa în 2 variante, case-sensitive și non-case-sensitive. -
Implementează metoda
buy
care primește ca parametri o carte și cantitatea. Aceasta va returna prețul final al tranzacției și va micșora stocul pentru cartea respectivă. -
Implementează metoda
order_by
care va reordona (in place) cărțile din librărie după orice atribut al unei cărți. -
Implementează proprietatea
total_cost
care returnează costul total al cărților din librărie. -
Adaugă atributul
categories
pe clasaBookStore
, care va fi un dicționar de forma{code: description}
. Implementează proprietateacategories_count
care returnează un dicționar de forma{category_description: number_of_books_in_that_category}
. -
Ce neajunsuri crezi că are implementarea propusă? Cum ai fi modelat librăria, pornind de la documentul XML dat?
-
Cât timp ți-a luat această temă? Care a fost dificultatea ei? Care puncte ți-au dat bătăi de cap?
- Ultimele două exerciții sunt parte din temă și răspunsurile se punctează. Nu sunt opționale!
- Folosește șablonul pus la dispoziție și fă toate testele să treacă, fără a le modifica.
- Amintește-ți subiectele discutate la cursul Noțiuni specifice Python, îți vor fi de folos pentru această temă.
- Nu uita de PEP8!