Skip to content

Latest commit

 

History

History
88 lines (64 loc) · 1.44 KB

README.md

File metadata and controls

88 lines (64 loc) · 1.44 KB

L04E03: Debug decorator

Vytvořte modul debug.py obsahující @debug dekorátor, který při zavolání obalené funkce vypíše na standardní výstup seznam argumentů (args), seznam pojmenovaných argumentů (kwargs), název funkce a výsledek v následujícím formátu. Zbytek funkce a její návratová hodnota funguje stejně.

Pro získání hodnoty argumentu a výsledku použijte funkci repr().

Soubor debug.py nesmi obsahovat žádný jiný kód než je kód dekorátoru. Případně testování provádějte v jiných souborech, které nebudete do repozitáře commitovat.

# vrátí reprezentaci hodnoty 2
repr(2)

# vrátí reprezentaci výsledku sum(2, 3)
repr(sum(2, 3))

Příklad použití:

@debug
def my_sum(a, b):
    return a + b

assert my_sum(6, 9) + 2 == 17

Na standardní výstup vypíše:

Calling: my_sum(6, 9)
Result: 15

@debug
def my_sum(a, b):
    return a + b

assert my_sum(2, b=3) + 2 == 7

Na standardní výstup vypíše:

Calling: my_sum(2, b=3)
Result: 5

@debug
def test():
    return 42

assert test() == 42

Na standardní výstup vypíše:

Calling: test()
Result: 42

@debug
def test():
    pass

assert test() == None

Na standardní výstup vypíše:

Calling: test()
Result: None

Lokální testování

Funkčnost řešení ověříte následujícím příkazem:

pytest tests.py