小智 5
尝试重载AssertionError而不是assert. 原始断言错误可在python2 的异常模块和python3 的内置模块中找到。
import exceptions
class AssertionError:
def __init__(self, *args, **kwargs):
print("Log me!")
raise exceptions.AssertionError
Run Code Online (Sandbox Code Playgroud)
我认为这是不可能的。assert是 Python 中的一条语句(而不是函数),并且具有预定义的行为。它是一个语言元素,不能简单地修改。改变语言并不能解决问题。问题必须使用语言提供的内容来解决
不过,您可以做一件事。AssertionError断言失败时将引发异常。可以利用这一点来完成工作。放置assert statementinTry-expect块并在该块内执行回调。它并不像您正在寻找的那样好。您必须对每个断言执行此操作。修改语句的行为是人们不会做的事情。
| 归档时间: |
|
| 查看次数: |
2173 次 |
| 最近记录: |