Python没有检查不工作

时间:2015-01-17 07:46:48

标签: python jinja2

我正在使用以下Python代码

    q = myMember.query(myMember.user==user)
    u = q.get()
    if u is None:
        self.redirect('/AddMember')
    elif u.team is None:
        self.redirect('/AddMember')
    elif u.team == "None":
        self.redirect('/AddMember')

    values = set_values()
    values['team'] = u.team

当我跑步时,我收到此错误:

     values['team'] = u.team
 AttributeError: 'NoneType' object has no attribute 'team'

为什么没有在if子句中捕获NoneType?

2 个答案:

答案 0 :(得分:2)

if u is None:
    self.redirect('/AddMember')

此代码段应具有 return 语句。它继续运行,因此是例外。

答案 1 :(得分:1)

if块确实执行,但该函数继续执行,因此后面的行仍然会发生。如果要停止该函数,则需要返回或引发异常。或者您可以将最后一行放入else,这样只有在没有满足if / elif条件时才会发生这些行。