Я пытаюсь создать простой HTTP-сервер и использую BaseHTTPServer в python.использование __init__ во время наследования в Python
Когда я пытаюсь запустить код ниже, я получаю сообщение об ошибке, указывающее, что init() принимает ровно 4 аргумента (1 данный).
Я думаю, проблема в том, что конструктор в обработчика перекрывая BaseHTTPServer.BaseHTTPRequest
Пожалуйста, дайте мне знать, где я буду неправильно
class handler(BaseHTTPServer.BaseHTTPRequestHandler):
def __init__(self,server):
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self)
self.server = server
self.port = 8080
def do_GET(self):
#perform some operation
class server():
def __init__(self):
self.port = 65531
self.host = 'localhost'
def run(self):
serverClass = BaseHTTPServer.HTTPServer
server = "xyz.c1589.com" # Some random server
h = handler(server)
server = serverClass((self.host,self.port),h)
print "Starting server!!"
try:
server.serve_forever()
except:
print "Error Creating Server"
server.server_close()
if __name__ == '__main__':
server().run()
'' 'BaseHTTPServer.BaseHTTPRequestHandler .__ init__''' принимает три аргумента, и подкласс требует одного, поэтому при создании' '' 'handler''' вам нужно передать четыре аргумента. – wwii
Когда вы получаете сообщение об ошибке, вы должны опубликовать полный ответ в своем вопросе. – wwii