Код: Выделить всё
class Sentence:
...
class And:
...
class Or:
...
class Not:
...
expr = And(
Sentence("It's sunny"),
Or(
Sentence("It's Raining"),
Not("We're having a picnic")
)
)
< /code>
Я хочу написать функцию рекурсивной проверки для проверки определенных свойств таких выражений во время выполнения. Например, это выражение фактически создается с использованием только фиксированного набора/подмножества этих классов, например, Возможно, это выражение не включает в себя не
Пример:
>>> expr =
>>> validate(expr)
ValidationError: `And` class failed cryptographic validation. Expression has been tampered with.
< /code>
Предположим, ради аргумента мы можем оценить нашу функцию валидации, чтобы предотвратить доступ к этому ненадежному коду или изменять определенные глобальные переменные /функции, например, Использование ограниченного типа, и в противном случае может гарантировать, что результат этой оценки будет строка или другого безопасного типа. Есть ли способ написать такую функцию проверки? Если это слишком вовлечено, я бы рад за некоторые ссылки.
Подробнее здесь: https://stackoverflow.com/questions/796 ... -in-python