Python中简洁的错误检查
如果某些条件不满足,我通常希望Python代码死亡。我通常只使用Python中简洁的错误检查,python,assert,Python,Assert,如果某些条件不满足,我通常希望Python代码死亡。我通常只使用断言whatever()。但是,我有时在运行时使用\uuuu debug\uuu等于False。在这些情况下,仍有一些类似断言的条件需要检查。我相信处理这些情况的“正确”方法只是一种常规的if:if notwhere():引发异常('Error message!')。换言之,我认为使用assert进行检查是唯一正确的,您很乐意不用这些检查,可能是那些耗时的检查或将要运行多次的检查。有没有更简洁的方法来完成与完整条件语句相同的事情 在
断言whatever()
。但是,我有时在运行时使用\uuuu debug\uuu
等于False
。在这些情况下,仍有一些类似断言的条件需要检查。我相信处理这些情况的“正确”方法只是一种常规的if:if notwhere():引发异常('Error message!')
。换言之,我认为使用assert进行检查是唯一正确的,您很乐意不用这些检查,可能是那些耗时的检查或将要运行多次的检查。有没有更简洁的方法来完成与完整条件语句相同的事情
在Perl中,我只使用
which()或die
。当然,考虑到两种语言在哲学上的差异,Perl需要更少的字符也就不足为奇了。您可以做的一件事是创建自己的assert版本:
def confirm(expression):
if not expression:
raise AssertionError
然后,您可以使用确认(whatever())
,而不是使用断言whatever()
或者,如果要模拟perl,可以执行以下操作:
def die():
raise Exception()
whatever() or die()
如果which()
返回True
,die()
将永远不会执行(由于布尔短路),程序将愉快地运行。如果where()
返回False
,则程序将终止
从技术上讲,这比perl多了两个字符,但是您可以将die
重命名为d
,并最终写入相同数量的字符
我很确定这不是一种类似python的方法,但是如果您愿意的话,这个选项是可用的。def die(为什么)有什么问题:引发异常(为什么)?然后将其用作
which()或die('which is breaked')
这样,即使您有_; debug _;=False,您仍然希望代码死亡?如果是这样的话,如果条件满足(或不满足,取决于您想要什么),您可以执行sys.exit()。