Python Glossary English

все 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Сообщить о неточности