Ваша проблема во всех if
утверждениях.
if (isVowel = true)
должно быть if (isVowel === true)
или просто if (isVowel)
. if (wordFirstIndex = "a")
и всех else if
ниже этого. Просто замените =
на ===
. Почему. Когда вы делаете if (wordFirstIndex = "a")
, вы присваиваете новое значение переменной wordFirstIndex
. Это проблема. Для сравнения двух объектов вы должны использовать оператор ==
или ===
(предпочтительно). См. этот ответ , чтобы получить больше информации о различиях между ==
и ===
.
Это - то, что я делаю:
Вместо того, чтобы инстанцировать непосредственно класс BaseHTTPServer. HTTPServer, я пишу новому потомку из него, который публикует метод "остановки":
class AppHTTPServer (SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
def serve_forever(self):
self.stop_serving = False
while not self.stop_serving:
self.handle_request()
def stop (self):
self.stop_serving = True
И затем, в методе SvcStop, который Вы уже имеете, я называю тот метод для повреждения serve_forever () цикл:
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
self.httpd.stop()
(self.httpd экземпляр AppHTTPServer (), который реализует веб-сервер),
Если Вы используете setDaemon () правильно на фоновых потоках и прерываете правильно все циклы в сервисе, то инструкция
exit(0)
в SvcStop () не должно быть необходимым