在Django应用程序中,我在一个返回error=“something”的窗体中进行了一些检查。
问题是,除非有任何错误,否则错误不会被定义。你知道吗
mycharacters = Character.objects.filter(username_id=request.user.id)
if(mycharacters.count() >= 5):
error = True
if not error:
#save to DB
问题是,如果没有错误,错误变量将不存在。你知道吗
为了避免这个错误,我也考虑过一种可能性,那就是:
error = None
#checks here
if error == None:
#save to DB
但我不确定这是否是最好的办法。你知道吗
有没有办法用Python做if error var does not exist:
?你知道吗
这是因为当第一个条件(first if)失败时,该块将不会执行,因此不会有任何名为
error
的变量,在第二个条件之后,python解释器也不会得到任何名为error
的变量,这就是为什么它在赋值之前给出了error
refereced。你知道吗因此,在
if(mycharacters.count() >= 5)
之前,您可以设置一个变量error
,其默认值为False
,并且只有当条件变为真时才将其设置为True
。你知道吗您可以执行以下操作:
更新
使用
else
分支:或将变量初始化为最不可能的值,然后重新赋值:
后者通常更容易阅读,但这两种方法都有效(其他答案中的单一表达式变体也是如此,即使如果你需要做更多的事情,这种变体更难扩展)。你知道吗
(请注意,如果您需要做的不仅仅是一个简单的赋值来建立“false”值,
if/else
构造通常会获胜,但在这种情况下,两次赋值的代价是微乎其微的。)检查变量是否存在是可以做到的,但这是冗长和糟糕的编程风格。缺少的变量应视为编程错误,而不是隐藏的程序状态。你知道吗
相关问题 更多 >
编程相关推荐