Výjimky a práce se soubory
Jupyter notebook z dnešního semináře.
Zadání
-
úkol 1
Napište dekorátor
log
, který bude logovat (vypíše název metody) operace nad zásobníkem, jehož implementace je uvedena níže (není ošetřena detekce prázdného zásobníku).class stack: def __init__(self): self.data = [] def pop(self): value = self.data[-1] del self.data[-1] return value def top(self): return self.data[-1] def push(self, value): self.data.append(value)
-
úkol 2
Upravte třídu zásobník tak, aby bylo možné manipulovat přímo (bez metod) s vnitřní proměnou
data
. Funkčnost zásobníku musí zůstat zachována. Například:zasobnik = stack() zasobnik.data = 10 # ekvivalent push(10) zasobnik.data = 11 # ekvivalent push(11) zasobnik.data # operace top() -> 11 del zasobnik.data # operace pop() zasobnik.data # 10
-
úkol 3
Upravte třídu zásobník tak, aby nedošlo k chybě při operaci
top
apop
nad prázným zásobníkem.