Python None 检查不工作

Python None check not working

我正在使用以下 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'

为什么 NoneType 没有包含在 if 子句中?

if块确实执行了,但是函数一直在执行,所以后面的行仍然会发生。如果您想停止该功能,您需要 return 或引发异常。或者您可以将最后几行放入 else 中,这样它们只会在满足 if/elif 条件中的 none 时发生。

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

此代码段应包含 return 语句。它一直在 运行,因此例外。