Предизвикателства > Пазарски списъци > Решения > Решението на Емилияна Атанасова

Резултати
2 точки от тестове
0 точки от учител

2 точки общо

5 успешни теста
0 неуспешни теста
Код
Скрий всички коментари

 1from collections import defaultdict
 2
 3memory = defaultdict(list)
 4
 5def pretty(name):
 6    return " ".join(word.capitalize() for word in name.split("_"))
 7
 8def memnick(*funcs):
 9    if not funcs: 
10        def decorator(func):
11            def saved(*args, **kwargs):
12                result = func(*args, **kwargs)
13                address, _ = result.split(",", 1)
14                speaker = func.__name__
15                if (speaker, result) not in memory[address]:
16                    memory[address].append((speaker, result))
17                return result
18            saved.__name__ = func.__name__
19            return saved
20        return decorator
21    else:  
22        result = []
23        for func in funcs:
24            name = pretty(func.__name__)
25            if name in memory:
26                for speaker, phrase in memory[name]:
27                    result.append(f"С гласа на {pretty(speaker)}: {phrase}")
28        return result

.....
----------------------------------------------------------------------
Ran 5 tests in 0.001s

OK

Дискусия
История
Това решение има само една версия.