Я начинаю учиться использовать движок приложений 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)
Это также работает в примерах с несколькими обработчиками запросов.