SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
Список вопросов ПечатьПрошу растолковать или дать ссылки на такое. Например Flask использует маршруты. Основаны они на хитром вызове декораторов. Но я никак не могу понять каким образом хранится массив url и как при наступлении события вызывается конкретная функция, обёрнутая конкретным маршрутом? Т.е. например есть код с кучей функций, задекорированных с помощью одного метода, но с разными переменными. Соответственно при выполнении кода нужно ориентироваться на значение переменных в декораторе и выполнить декорируемую функцию.
| RemiZOffAlex Создано: 2017-03-18 20:16:05.090198 Обновлено: 2017-03-18 20:16:05.090198 |
|---|
|
Предоставил ответ Игорь Шевченко @igor_shevchenko
mapping = {}
def register(name):
def real_decorator(foo):
mapping[name] = foo
return foo
return real_decorator
@register('a')
def foo():
print('foo')
@register('b')
def bar():
print('bar')
mapping['a']() # prints 'foo'
mapping['b']() # prints 'bar'
|