【发布时间】:2015-06-25 01:27:59
【问题描述】:
我正在尝试构建一个简单的 HTTP 服务器并在 python 中使用 BaseHTTPServer。
当我尝试运行下面的代码时,我会收到一条错误消息,指出 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时,您需要传递四个参数。 -
当您遇到错误时,您应该在您的问题中发布完整的回溯。
标签: python-2.7