UnboundLocalError:局部变量…在分配前被引用
问题内容:
我得到一个UnboundLocalError
因为在不执行的if语句中使用模板值。处理这种情况的标准方法是什么?
class Test(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
greeting = ('Hello, ' + user.nickname())
else:
self.redirect(users.create_login_url(self.request.uri))
...
template_values = {"greeting": greeting,
}
错误:
UnboundLocalError: local variable 'greeting' referenced before assignment
问题答案:
只需切换:
class Test(webapp.RequestHandler):
def err_user_not_found(self):
self.redirect(users.create_login_url(self.request.uri))
def get(self):
user = users.get_current_user()
# error path
if not user:
self.err_user_not_found()
return
# happy path
greeting = ('Hello, ' + user.nickname())
...
template_values = {"greeting": greeting,}