Предизвикателства > Мемник > Решения > Решението на Гергана Панделиева

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

2 точки общо

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

 1memory = {}
 2
 3def format_name(name):
 4       return name.replace("_", " ").title()
 5#title ми е от интернет
 6
 7def memnick(*funcs):
 8    if len(funcs) == 0:
 9        def decorator(func):
10            def wrapper(*args, **kwargs):
11                res = func(*args, **kwargs)
12                address, phrase = res.split(",", 1)
13                address = address.strip()
14                speaker = format_name(func.__name__)
15
16                if address not in memory:
17                    memory[address] = set()
18
19                memory[address].add((speaker, res))
20                return res
21            return wrapper
22        return decorator
23    else:
24        res = []
25        for func in funcs:
26            name = format_name(func.__name__)
27            if name in memory:
28                for speaker, phrase in memory[name]:
29                    res.append(f"С гласа на {speaker}: {phrase}")
30
31        return res
32    

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

OK

Дискусия
История

t1memory = {}t1memory = {}
22
3def format_name(name):3def format_name(name):
4       return name.replace("_", " ").title()4       return name.replace("_", " ").title()
5#title ми е от интернет5#title ми е от интернет
66
7def memnick(*funcs):7def memnick(*funcs):
8    if len(funcs) == 0:8    if len(funcs) == 0:
9        def decorator(func):9        def decorator(func):
10            def wrapper(*args, **kwargs):10            def wrapper(*args, **kwargs):
11                res = func(*args, **kwargs)11                res = func(*args, **kwargs)
12                address, phrase = res.split(",", 1)12                address, phrase = res.split(",", 1)
13                address = address.strip()13                address = address.strip()
14                speaker = format_name(func.__name__)14                speaker = format_name(func.__name__)
1515
16                if address not in memory:16                if address not in memory:
17                    memory[address] = set()17                    memory[address] = set()
1818
19                memory[address].add((speaker, res))19                memory[address].add((speaker, res))
20                return res20                return res
21            return wrapper21            return wrapper
22        return decorator22        return decorator
23    else:23    else:
24        res = []24        res = []
25        for func in funcs:25        for func in funcs:
26            name = format_name(func.__name__)26            name = format_name(func.__name__)
27            if name in memory:27            if name in memory:
28                for speaker, phrase in memory[name]:28                for speaker, phrase in memory[name]:
29                    res.append(f"С гласа на {speaker}: {phrase}")29                    res.append(f"С гласа на {speaker}: {phrase}")
3030
31        return res31        return res
32    32    
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op