Я создаю простой парсер, который должен уметь читать некоторые логические c и арифметические c, компилировать его в AST, а затем оценивать его. Пытаясь сделать это без использования зла eval
, я наткнулся на этот ответ .
Затем я понял, что встроенная operator
библиотека имеет функции почти для всего, кроме логических and
и or
, существуют только побитовые. Удивительно, но логичный not
тоже существует. Почему отсутствуют and
и or
? Почему not
, а не and
и or
? И, чтобы следовать упомянутому выше ответу, какую функцию я должен использовать для этих двух операторов?
PS: Я проверял python3, но похоже, что та же библиотека в python2 имеет ту же проблему.