Давайте поговорим о mod_python против mod_php.
Поскольку язык Python НЕ специально предназначен для обслуживания веб-страниц, mod_python должен выполнить дополнительную работу.
Поскольку язык PHP специально предназначен для обслуживания веб-страниц, mod_php просто запускает именованный модуль PHP.
В случае mod_python (отличается от mod_fastcgi или mod_wsgi), дизайнер mod_python решил, что лучший способ вызвать Python - это вызвать метод объекта, определенного в модуле. Надеюсь, этот метод этого объекта запишет заголовки и содержимое веб-страницы в стандартный вывод.
В случае с mod_wsgi дизайнер решил, что лучший способ вызвать Python - это вызвать функцию (или вызываемый объект) в модуле. Надеемся, что эта функция будет использовать предоставленный объект для создания заголовка и возврата строк списка с содержимым веб-страницы.
В случае mod_php они просто вызывают модуль, потому что модули PHP предназначены для обслуживания веб-страниц. Программа запускается, и результатом этого запуска является страница содержимого; обычно HTML.
Причина, по которой mod_php работает одним способом, mod_python работает другим, а mod_wsgi работает третьим, заключается в том, что они разные. Написано разными людьми с разными определениями способа создания веб-страницы.
Страница php может быть объектно-ориентированной. Функция mod_wsgi может быть вызываемым объектом или может быть простым действием. Это выбор дизайна.
Требование mod_python для класса - это выбор дизайна, сделанный разработчиком mod_python.
Причина «почему» никогда не бывает полезной. Причина «почему» в том, что кто-то решил спроектировать это таким образом.