如何创建初始化代码?
当我把__init__
构造函数总是告诉我参数是错误的。
另外,请使用__new__
和使用super()
的示例进行示例,我们为什么要使用它们。
import webapp2
class MainHandler( webapp2.RequestHandler ):
def __init__( self ):
#initialization code/vars
x = 1
def get( self ):
#code for get here
self.response.write( x+1 )
def post( self ):
#code for post here
self.response.write( x+2 )
app = webapp2.WSGIApplication([('/',MainHandler)],debug = True)
答案 0 :(得分:13)
终于搞定了...... 问题是覆盖“webapp2.RequestHandler”需要特殊的特殊处理
来自webapp2手册:
如果要覆盖webapp2.RequestHandler。 init ()方法,则必须调用 方法开头的webapp2.RequestHandler.initialize()。它会设置当前请求, 响应和appobjectsasattributesofthehandler。 例如:
class MyHandler(webapp2.RequestHandler):
def __init__(self, request, response):
# Set self.request, self.response and self.app.
self.initialize(request, response)
# ... add your custom initializations here ...
# ...
......就是这样...... 现在按预期工作 ; - )
答案 1 :(得分:3)
如果您未在__init__
方法中传递任何参数或包含任何自己的代码,则通常无需创建任何参数。您只需使用webapp2.RequestHandler
的{{1}}方法。
如果你做需要制作一个,你仍然需要拨打__init__
:
webapp2.RequestHandler.__init__
答案 2 :(得分:0)
您需要在班级的所有功能中都有一个self
变量。您需要包含此变量才能使函数在您的类中工作。
可以找到here中每个函数中self
变量需求的一个很好的解释。