у оборачиваемой функции?
хм...
from markupsafe import escape
@app.route("/<name>")
def hello(name):
return f"Hello, {escape(name)}!"
Мре привел.
Как эта хуйня работает?
С классами понятно - первая переменная в методе объекта, если он не перекрыт статикметод или классметод всегда является ссылкой на сам объект. А как тогда связаны названия?
Я даже вопрос толком не могу задать. т.к. не понимаю что это вообще.
eval(f"function({key}={value})") # грубо говоря так
https://docs.python.org/3/library/inspect.html#introspecting-callables-with-the-signature-object
Вообще не понятно, о чем ты. Как декоратор передает нужный параметр под нужным именем?
вообще конкретно этой штуке не обязательно знать как аргументы называются, оно может **кварги использовать
вот именно. Такую же хрень я видел с command в аиограмм в3
Он просто распаковывает словарь function(**dict_params)
через какой то метод в модуле inspect получается список аргументов функции и потом сравнивается со всеми объектами, которые должны быть прокинуты. те которых нет в аргументах функции - не попадают туда https://github.com/aiogram/aiogram/blob/c418689dc1a69e930dc533f5d9107104130195c7/aiogram/dispatcher/event/handler.py#L31
Обсуждают сегодня