本文介绍了UnboundLocalError:局部变量...在分配前被引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到一个 UnboundLocalError ,因为我在一个if语句中使用了一个未执行的模板值。处理这种情况的标准方法是什么?

I get an UnboundLocalError because I use a template value inside an if statement which is not executed. What is the standard way to handle this situation?

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,}

这篇关于UnboundLocalError:局部变量...在分配前被引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-16 05:28