Как активировать (выполнить) методы класса в Python? - PullRequest
2 голосов
/ 24 февраля 2010

У меня есть программа ( простой веб-сервер ), которую я пытаюсь понять. Есть класс под названием MyHandler. В этом классе мы определяем 2 метода do_GET и do_POST.

Я не понимаю нескольких вещей:

  1. Где мы используем два вышеописанных метода? Я ожидаю увидеть что-то вроде этого objectname.do_GET () и objectname.do_POST (), но я не вижу таких вещей.

  2. В какой момент мы создаем экземпляр класса? Используем ли мы весь класс (не экземпляр класса) в качестве аргумента HTTPServer?

  3. Почему мы указываем аргумент в определении класса (BaseHTTPRequestHandler), а затем не используем его?

1 Ответ

4 голосов
/ 24 февраля 2010

Я довольно новичок в Python, но я попробую ответить - это тоже может помочь мне учиться!

  1. Мы никогда не вызываем методы do_GET() и do_POST() из нашего кода, это выполняется автоматически экземпляром класса HTTPServer при выполнении запросов GET и POST (см. Пункт 2).

  2. HTTPServer создаст экземпляр класса MyHandler для каждого сделанного HTTP-запроса.

  3. BaseHTTPRequestHandler не является аргументом: он указывает, что наши MyHandler подклассы класса BaseHTTPRequestHandler.

Надеюсь, это поможет!

...