Я пишу утверждения вроде этого:
if f(x, y) != z:
print(repr(x))
print(repr(y))
print(repr(z))
raise MyException('Expected: f(x, y) == z')
Мне было интересно, есть ли способ написать функцию, которая бы принимала допустимое выражение Python и класс исключений в качестве входных данных, оценивала выражение,и если он обнаружит, что он ложный, выведите представление каждого из терминов самого низкого уровня в выражении и вызовите данное исключение?
# validate is the mystery function
validate('f(x, y) == z', MyException)