我正在使用以下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?
答案 0 :(得分:2)
if u is None:
self.redirect('/AddMember')
此代码段应具有 return 语句。它继续运行,因此是例外。
答案 1 :(得分:1)
if
块确实执行,但该函数继续执行,因此后面的行仍然会发生。如果要停止该函数,则需要返回或引发异常。或者您可以将最后一行放入else
,这样只有在没有满足if / elif条件时才会发生这些行。