Почему тип ответа передается в метод как переменная?
В большинстве веб-фреймворков используется следующая конструкция: def on_get(self, req, resp):
Непонятно почему всегда resp принимается в функцию обработчик. Это же ответ. Мы его не принимать, а возвращать должны.
Чтобы ты не копипастил везде конструктор ответа, передаётся болванка. И да, не "в большинстве", а в асинхронных/неблокирующих, потому что в синхронных классы ответов примитивные и используются только после завершения ответа.
Это объект, который ты должен заполнить. В функциональных языках это вполне могло бы быть возвращаемое значение, но его сложно передать в иную асинхронную функцию. Синтетический пример:
asyncSetHeaders(resp)
Из менее синтетических примеров - необходимость сделать асинхронный запрос, чтобы в итоге сформировать response