我想在我的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
答案 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