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

Резултати
Все още не са пуснати тестове
Код

 1memory = {}
 2
 3def memnick(*args):
 4    def format_name(name):
 5        parts = name.split("_")
 6        result = []
 7        for part in parts:
 8            result.append(part.capitalize())
 9        return " ".join(result)
10
11    if len(args) == 0:
12        def decorator(func):
13            def wrapper(*f_args, **f_kwargs):
14                result = func(*f_args, **f_kwargs)
15                receiver, _ = result.split(", ", 1)
16                speaker = format_name(func.__name__)
17                if receiver not in memory:
18                    memory[receiver] = []
19                if (speaker, result) not in memory[receiver]:
20                    memory[receiver].append((speaker, result))
21                return result
22            wrapper.__name__ = func.__name__
23            return wrapper
24        return decorator
25
26    result_list = []
27    for func in args:
28        name = format_name(func.__name__)
29        if name in memory:
30            for speaker, phrase in memory[name]:
31                result_list.append(f"С гласа на {speaker}: {phrase}")
32
33    return result_list
Все още няма пуснати тестове.
Дискусия
История
Това решение има само една версия.