znajdę sobie pisanie twierdzenia takie jak:python: automatyczne drukowanie reprezentację każdego składnika w wyrażeniu
if f(x, y) != z:
print(repr(x))
print(repr(y))
print(repr(z))
raise MyException('Expected: f(x, y) == z')
Zastanawiałem się, czy istnieje sposób, aby napisać funkcję, która będzie przyjmować prawidłową ekspresję Python i wyjątek klasa jako dane wejściowe, ocenia wyrażenie i jeśli stwierdzi, że jest to fałsz, wydrukuj reprezentację każdego z najniższych poziomów w wyrażeniu i podnieś dany wyjątek?
# validate is the mystery function
validate('f(x, y) == z', MyException)
Przerzuciłbym komunikat wyjątku: zamiast tego, co chcesz, podaj to, co wykrywasz d być błędnym. To daje to samo wyrażenie (! =), Które testowałeś, zamiast jego odwrotności (==). –