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