2009-05-21 3 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

selfwebapp.RequestHandler 클래스를 나타냅니다. 그 문서는 다음과 같습니다 http://code.google.com/appengine/docs/python/tools/webapp/requesthandlerclass.html, 이는 response의 의미를 알려줍니다.

+0

하지만 webapp.RequestHandler는 MainPage 클래스의 매개 변수입니다. 왜 "self"가 호출 될 때 MainPage 객체가 참조되지 않는지 이해할 수 없습니다. – Devoted

+0

MainPage/is/자체 객체의 유형이지만 'response'와 같은 속성이 정의 된 webapp.RequestHandler에서 상속됩니다. Webapp 참조 문서 (appengine 문서 내)를 살펴볼 필요가 있습니다. –

+0

헌신적 인 "클래스 MainPage (webapp.RequestHandler) : "은 MainPage의 파이썬 구문으로 webapp.RequestHandler를 상속받습니다. 따라서 webapp.RequestHandler에서 사용할 수있는 메서드는 MainPage에서도 사용할 수 있습니다. – allyourcode

3

self는 Java, C#, C++ 등의 다른 언어에서 'this'를 의미하는 Python 규칙입니다. 객체에 관해 말할 때 명시 적으로 참조해야하는 것이 기괴하다는 것을 알았습니다 (Java 배경),하지만 당신은 그것에 익숙해 져 있습니다.

파이썬을 사용하려는 경우 코드 완성을 수행하고 파이썬 구문을 이해하는 편집기를 얻는 것이 좋습니다. 주어진 클래스 나 모듈에서 사용할 수있는 기능을 결정할 때 더 쉽게 사용할 수 있습니다.