2009-05-21 38 views
2

Google App Engineのドキュメントのこのサンプルプログラムは、自分自身を参照するとき、何を意味していますか?どこでどのようなメソッド(self.response ...など)を調べることができますか?Google App Engine Pythonコード:User Service

from google.appengine.api import users 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 

class MainPage(webapp.RequestHandler): 
    def get(self): 
    user = users.get_current_user() 

    if user: 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.out.write('Hello, ' + user.nickname()) 
    else: 
     self.redirect(users.create_login_url(self.request.uri)) 

application = webapp.WSGIApplication(
            [('/', MainPage)], 
            debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

答えて

5

selfは、webapp.RequestHandlerクラスを指す。そのドキュメントは以下の通りです:http://code.google.com/appengine/docs/python/tools/webapp/requesthandlerclass.htmlは、responseの意味を教えてくれます。

+0

しかしwebapp.RequestHandlerはMainPageクラスのパラメータです...なぜ "self"が呼び出されたときにMainPageオブジェクトが参照されていないのか分かりません。 – Devoted

+0

MainPage/is/selfオブジェクトの型ですが、webapp.RequestHandlerから継承しています。これは 'response'のようなプロパティが定義されています。 Webappリファレンスドキュメント(Appengineドキュメント内)を見る必要があります。 –

+0

"mainPage(webapp.RequestHandler)クラス: "は、Webapp.RequestHandlerから継承したMainPageのPython構文です。したがって、webapp.RequestHandlerで利用できるメソッドはMainPageでも利用できます。 – allyourcode

3

selfは、Java、C#、C++などの他の言語で 'this'を意味するPythonの規約です。オブジェクトについて話すときに明示的に参照する必要があることは奇妙です背景)、しかしあなたはそれに慣れています。

Pythonを使うつもりなら、コード補完を行い、Pythonの構文を理解するエディタを用意することをお勧めします。与えられたクラスやモジュールで利用可能な関数を判断しようとすると、もっと簡単になります。

関連する問題