我有一个布尔函数,我在python中使用assert命令。这意味着,如果所有的断言都是正确的,则该函数将返回True,但是当不满足断言时,我将得到一个错误。我希望它只返回false。
但是,当我测试它时会抛出一个断言错误(非常正确),我想知道是否有办法接受该错误并返回false?
现在,如果断言无效,我正在使用if not语句返回false,但是由于我有很多断言,我的代码变得有点长。
答案 0 :(得分:1)
您不想在这里使用assert,只需使用条件语句即可。
if not (whatever your assert was):
return false
答案 1 :(得分:0)
您可以尝试使用异常:块除外
try:
assert condition1 # or whatever you want to check
assert condition2 # ...
except AssertionError:
return True
else:
return False
但是,我不打算为布尔条件使用断言只是将其封装在try除外块中以返回true或false。您可以通过简单的and语句获得相同的行为:
result = condition1 and condition2 # ....
或者将所有条件包装在高级函数中以提高代码的可读性:
def high_level_condition():
return condition1 and condition2
对于这种任务,声明似乎不是正确的语言功能。 我只会使用assert来检查不变量以检查程序的行为是否符合预期。