все Python 3astпонятие
ast.And
операторы
Класс логического оператора and: экземпляр And() стоит в поле op узла BoolOp. Его пара — ast.Or.
Синтаксис
ast.And() # and
And встречается только в BoolOp — побитовое & это BitAnd в BinOp, а not — Not в UnaryOp. Все операнды цепочки a and b and c лежат в одном BoolOp.values, поэтому число условий — len(node.values), а не глубина вложенности. Имя класса с заглавной буквы: ast.and — синтаксическая ошибка, потому что and — ключевое слово.
Примеры
import ast
node = ast.parse('x > 0 and y > 0 and z', mode='eval').body
print(type(node.op).__name__, len(node.values)) # → And 3
print(type(ast.parse('a & b', mode='eval').body.op).__name__) # → BitAnd
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности