是否有必要在我老板的django代码中进行所有这些检查?

zjm*_*126 0 python django

这是我老板的代码:

if hasattr(request, 'rk_user') and request.rk_user:
            request.rk_user.focus_update()
Run Code Online (Sandbox Code Playgroud)

但我认为没有必要检查两者

我认为它应该是:

if hasattr(request, 'rk_user') :
            request.rk_user.focus_update()
Run Code Online (Sandbox Code Playgroud)

要么:

if  request.rk_user:
            request.rk_user.focus_update()
Run Code Online (Sandbox Code Playgroud)

我对吗?

Dan*_*man 7

虽然其他回答者是正确的,他们检查不同的东西,你可以将两个检查折叠成一个命令:

if getattr(request, 'rk_user', None):
Run Code Online (Sandbox Code Playgroud)

如果存在,则获取属性,如果不存在,则获取None; 然后它检查它得到的任何值都不是空的.