替代BaseHTTPRequestHandler

时间:2018-09-10 11:34:03

标签: python

我想在我的RequestHandler类中定义一些变量,该类是BaseHTTPRequestHandler的子类。然后应该可以从我的do_Post()函数内部访问这些变量。通常,我会在__ init__()方法中定义那些变量,但是在python docs about the BaseHTTPRequestHandler class

中定义

说:“子类不需要重写或扩展__ init__()方法。”

那么实现这一目标的最优雅的方法是什么?

from http.server import BaseHTTPRequestHandler, HTTPServer

class RequestHandler(BaseHTTPRequestHandler):

    def do_POST(self):
        #do some stuff

1 个答案:

答案 0 :(得分:1)

不需要意味着您不必担心该方法,该库将在实例上未设置任何特殊属性的情况下运行。但是,这并不意味着你不能

例如,BaseHTTPRequestHandler类本身未定义__init__方法,但是同一模块中的SimpleHTTPRequestHandler类是BaseHTTPRequestHandler的直接子类,定义一个__init__方法。

您的代码可以很好地定义一个:

class RequestHandler(BaseHTTPRequestHandler):
    def __init__(self, ...):
        # do something with arguments and set state on self

    def do_POST(self):
        # do some stuff