1memory = {} #"глобален" речник за съхранение на изхода
2
3def func_name_normalization(func_name): #някаква_дума -> Някаква Дума
4 func_name = func_name.split("_")
5 func_name = " ".join(part.capitalize() for part in func_name)
6 return func_name
7
8def memnick(*args):
9 if len(args) == 0:
10 def decorator(func):
11 def statement(*args, **kwargs): #по условие може да приема всичко
12 sentence = func(*args, **kwargs)
13
14 sentence_parts = sentence.split(", ", 1)
15 name_addressed = sentence_parts[0].lower()#гарантира че няма да имаме проблеми с разминаване в регистрите
16 #при ключовете в речника
17 speaker = func_name_normalization(func.__name__)
18 modified_sentence = "С гласа на {}: {}".format(speaker, sentence)
19
20 if name_addressed not in memory:
21 memory[name_addressed] = []
22
23 if modified_sentence not in memory[name_addressed]:#гарантира уникалност на стойностите по условие
24 memory[name_addressed].append(modified_sentence)
25
26 return sentence
27
28 statement.__name__ = func.__name__ #Гарантираме че името на върнатата функция съвпада с подадената такава
29
30 return statement
31 return decorator
32
33 else:
34 all_phrases = []
35 for func in args:
36 normalized_argument_name = func.__name__.lower() #line 15
37 if normalized_argument_name in memory:
38 all_phrases.extend(memory[normalized_argument_name])
39 return all_phrases
....F
======================================================================
FAIL: test_memnick_splits_properly (test.TestMemnick.test_memnick_splits_properly)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 89, in test_memnick_splits_properly
self.assertEqual(
~~~~~~~~~~~~~~~~^
["С гласа на Емил: Бай Венци, кажи ми за рисунката."],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
solution.memnick(бай_венци),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
AssertionError: Lists differ: ['С гласа на Емил: Бай Венци, кажи ми за рисунката.'] != []
First list contains 1 additional elements.
First extra element 0:
'С гласа на Емил: Бай Венци, кажи ми за рисунката.'
- ['С гласа на Емил: Бай Венци, кажи ми за рисунката.']
+ []
----------------------------------------------------------------------
Ran 5 tests in 0.002s
FAILED (failures=1)
15.03.2026 14:22
15.03.2026 14:21
15.03.2026 14:22