-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPython_priklad2_OOP.py
More file actions
58 lines (43 loc) · 2.09 KB
/
Python_priklad2_OOP.py
File metadata and controls
58 lines (43 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# UDĚLAT vypravěči - FUNGUJE
"""
Nyní se vrátíme k práci pro nakladatelství, pro které jsme již připravili třídy Item, Book a AudioBook.
V e-shopech se často objevuje možnost filtrování produktů. Uvažujme například, že někteří fanoušci a fanynky audioknih
vybírají knihy podle herce a herečky, kteří je čtou. Preferované jméno bude uložené v proměnné favourite_narrator. Napiš kód,
který projde všechny položky v seznamu all_items a vypíše názvy (atribut title) objektů, pro které se hodnota atributu narrator
rovná hodnota v proměnné favourite_narrator. Pozor na to, že v seznamu all_items jsou i běžné knihy, které vypravěče nemají.
Zajisti, aby program neskončil chybou, protože některý objekt nemá atribut narrator.
"""
class Item:
def __init__(self, title, price):
self.title = title
self.price = price
def get_time_to_read(self):
pass
class Book(Item):
def __init__(self, title, price, pages):
super().__init__(title, price)
self.pages = pages
def get_info(self):
return f"Kniha {self.title} má {self.pages} stran a stojí {self.price} Kč."
def get_time_to_read(self, min_na_stranku=4):
return (self.pages * min_na_stranku) / 60
class AudioBook(Item):
def __init__(self, title, price, duration_in_hours, narrator):
super().__init__(title, price)
self.duration_in_hours = duration_in_hours
self.narrator = narrator
def get_time_to_read(self):
return self.duration_in_hours
favourite_narrator = "Zbyšek Horák"
item_1 = AudioBook("Problém tří těles", 299, 14.4, "Zbyšek Horák")
item_2 = Book("Kadet Hornblower", 399, 242)
item_3 = AudioBook("Odysseus", 389, 13.7, "Lukáš Hlavica")
item_4 = Book("harry potter", 598, 65)
all_items = [item_1, item_2, item_3]
for item in all_items:
if getattr(item, "narrator", "nemá vypravěče") == "Zbyšek Horák":
print(item.title)
print(item_2.get_time_to_read())
print(item_1.get_time_to_read())
total_time = item_1.get_time_to_read() + item_2.get_time_to_read()
print(total_time)