me encuentro escribiendo afirmaciones como éstas:pitón: impresión automática de la representación de cada componente en una expresión
if f(x, y) != z:
print(repr(x))
print(repr(y))
print(repr(z))
raise MyException('Expected: f(x, y) == z')
Me preguntaba si hay una manera de escribir una función que acepte una expresión válida en Python y una excepción clase como entrada, evalúe la expresión, y si encuentra que es falsa, imprima la representación de cada uno de los términos de nivel más bajo en la expresión y aumente la excepción dada?
# validate is the mystery function
validate('f(x, y) == z', MyException)
Le daría la vuelta al mensaje de excepción: en lugar de decir lo que quiere, especifique lo que detecte d estar equivocado Esto da la misma expresión (! =) Que probó, en lugar de su inversa (==). –