1from collections import defaultdict, OrderedDict
2
3PHRASE_FORMAT = "С гласа на {}: {}"
4PHRASE_SEP = ", "
5FUNC_NAME_SEP = "_"
6ADRESSE_IDX = 0
7
8phrases = defaultdict(OrderedDict)
9
10def format_name(text):
11 return " ".join(word.capitalize() for word in text.split(FUNC_NAME_SEP))
12
13def memnick(*args):
14 if args:
15 return [phrase for f in args for phrase in phrases[format_name(f.__name__)].keys()]
16
17 def decorator(func):
18 def wrapper(*_args, **_kwargs):
19 phrase = func(*_args, **_kwargs)
20 adresse = phrase.split(PHRASE_SEP)[ADRESSE_IDX]
21 voice = format_name(func.__name__)
22 full_phrase = PHRASE_FORMAT.format(voice, phrase)
23
24 phrases[adresse][full_phrase] = None
25 return phrase
26
27 wrapper.__name__ = func.__name__
28 return wrapper
29 return decorator
.....
----------------------------------------------------------------------
Ran 5 tests in 0.001s
OK
Илиян Гаврилов
13.03.2026 15:17Еми евентуално ако се използва пак този индекс при бъдещо развитие. Иначе едва ли скоро ще се промени езикът така, че обръщенията да не са първи.
|
Виктор Бечев
13.03.2026 12:57Важи. Единственото, което ми се струва излишно е константата `ADRESSE_IDX` - може би не бих създал променлива за такъв тип литерал _(индекс на списък, който не очаквам да се променя)_, но не пречи. И определено не си заслужава да качваш нова версия без него, дори да се съгласиш. Ако пък не си съгласен - приемам твоето несъгласие.
|