9

初期化コードを作成するにはどうすればよいですか? コンストラクターを配置すると__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 )

4

3 に答える 3

14

最後にそれを手に入れました...問題は、「webapp2.RequestHandler」をオーバーライドするには特別な特別な処理が必要なことです

webapp2 マニュアルから:

webapp2.RequestHandler をオーバーライドする場合。init () メソッドでは、メソッドの先頭で webapp2.RequestHandler.initialize() を呼び出す必要があります。現在のリクエスト、レスポンス、アプリオブジェクトをハンドラーの属性として設定します。例:

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 ...
    # ...

...そしてそれだけです...期待どおりに動作するようになりました;-)

于 2013-03-25T21:00:36.627 に答える
3

引数を渡さない場合、または__init__メソッドに独自のコードを含めない場合は、通常、作成する必要さえありません。webapp2.RequestHandler__init__メソッドを使用するだけです。

作成する必要がある場合でも、次のように呼び出す必要がありますwebapp2.RequestHandler.__init__

class theHandler(webapp2.RequestHandler):
    def __init__(self, your_arg, *args, **kwargs):
        super(theHandler, self).__init__(*args, **kwargs)

        self.your_arg = your_arg
于 2013-03-13T23:07:03.307 に答える
0

selfクラス内のすべての関数に変数が必要です。関数がクラス内で機能するには、この変数を含める必要があります。

selfクラス内の各関数での変数の必要性についての適切な説明は、ここにあります。

于 2013-03-13T23:03:53.583 に答える