在python中断言失败时如何退出?

2024-10-01 17:38:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用断言,这样当断言失败时,我的脚本就存在了。在

为此,我编写了一个自己的函数来停止脚本

def assertExit(mlambda, errorMessage):
    res = mlambda()
    if res != True:
        sys.exit(errorMessage)

assertExit((lambda: False), "Should fail")

用土生土长的Python做断言有什么办法吗?在

^{pr2}$

Tags: lambda函数脚本falsetrueifdefsys
1条回答
网友
1楼 · 发布于 2024-10-01 17:38:38

正如已经指出的,由assert引发的未处理的AssertionError应该已经停止了您的脚本。在

如果正在测试的条件的计算结果不是True,则assert总是失败。也就是说,as long as you do not start in optimized mode,在这种情况下,它不会抛出AssertionError。在

所以

def assert_exit(condition, err_message):
    try:
        assert condition
    except AssertionError:
        sys.exit(err_message)

如果您确实想调用sys.exit()并使用assert,那么应该是您想要的

^{pr2}$

将停止您的脚本,并提供一个stacktrace,这样就省去了每次调用assert_exit时输入自定义错误消息的麻烦,并将您直接指向违规方。在

相关问题 更多 >

    热门问题