首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖BaseHTTPRequestHandler的__init__函数的替代方法

覆盖BaseHTTPRequestHandler的__init__函数的替代方法
EN

Stack Overflow用户
提问于 2018-09-10 19:34:03
回答 1查看 425关注 0票数 2

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

说“子类不应该需要覆盖或扩展__ init__()方法。”

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

代码语言:javascript
复制
from http.server import BaseHTTPRequestHandler, HTTPServer

class RequestHandler(BaseHTTPRequestHandler):

    def do_POST(self):
        #do some stuff
EN

回答 1

Stack Overflow用户

发布于 2018-09-10 19:57:16

不应该需要意味着您不必担心该方法,库将在实例上不设置任何特殊属性的情况下工作。然而,这并不意味着你不能。

例如,BaseHTTPRequestHandler类本身没有定义__init__方法,但同一模块中的SimpleHTTPRequestHandler类是BaseHTTPRequestHandler的直接子类,后者定义了__init__方法。

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

代码语言:javascript
复制
class RequestHandler(BaseHTTPRequestHandler):
    def __init__(self, ...):
        # do something with arguments and set state on self

    def do_POST(self):
        # do some stuff
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52256931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档