当断言通过

时间:2018-05-07 12:21:25

标签: python assert

使用Python的断言命令,我可以在断言失败时打印消息

Python控制台:

>>> assert 0, "FAIL"
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AssertionError: FAIL

我想通过重载\覆盖断言来保持相同的语句结构。 我不想实现一个名为my_assert(condition,msg_fail,msg_pass)的新函数来代替&#34;断言&#34;,就像在print success messages for asserts in python中建议的那样,

我想保持相同的一行结构,如下所示。 有没有办法,没有在try中包装assert:除了在assert成功时输出消息?某种方式来覆盖断言语句,因此它以不同的方式工作,如:

>>> assert 1, "FAIL", "PASS"
PASS

由于

1 个答案:

答案 0 :(得分:0)

你可以把这个逻辑放在便利函数中

def print_assert(condition, str_fail, str_pass):
    assert condition, str_fail
    print(str_pass)

然后以同样的方式使用它

>>> print_assert(1, "FAIL", "PASS")
PASS
>>> print_assert(0, "FAIL", "PASS")
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    print_assert(0, "FAIL", "PASS")
  File "<pyshell#3>", line 2, in print_assert
    assert condition, str_fail
AssertionError: FAIL