Почему экземпляр webapp.WSGIApplication всегда определяется как глобальная переменная в коде движка приложения Google?

Я начинаю учиться использовать движок приложений Google и, в большей части кода, с которым я столкнулся, они объявляют экземпляр webapp.WSGIApplication как глобальную переменную. В этом нет необходимости, поскольку код отлично работает, когда он локально объявлен в основной функции. Мне всегда советовали избегать глобальных переменных. Так есть ли хорошая или даже не очень веская причина, по которой это делается таким образом?

Пример:

class Guestbook(webapp.RequestHandler):
  def post(self):
    greeting = Greeting()

    if users.get_current_user():
      greeting.author = users.get_current_user()

    greeting.content = self.request.get('content')
    greeting.put()
    self.redirect('/')

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

def main():
  wsgiref.handlers.CGIHandler().run(application)

Почему бы не сделать следующее, которое также работает:

class Guestbook(webapp.RequestHandler):
  def post(self):
    greeting = Greeting()

    if users.get_current_user():
      greeting.author = users.get_current_user()

    greeting.content = self.request.get('content')
    greeting.put()
    self.redirect('/')

def main():
  application = webapp.WSGIApplication([  ('/', MainPage),  ('/sign', Guestbook)], debug=True)
  wsgiref.handlers.CGIHandler().run(application)

Это также работает в примерах с несколькими обработчиками запросов.

6
задан shafty 2 March 2011 в 20:00
поделиться