Python Glossary English

все Python 3astпонятие

ast.BoolOp

выражения

Узел логической операции and или or: оператор в op и список операндов values. Цепочка одинаковых операторов собирается в один узел.

Синтаксис

ast.BoolOp(op, values)

a and b and c — это один BoolOp с тремя values, а не вложенные пары, в отличие от BinOp. Смешение операторов вкладывается по приоритету: a and b or c даёт Or, первый элемент которого — BoolOp с And. Отрицание not сюда не входит: это UnaryOp с Not. Побитовые & и | тоже не BoolOp, а BinOp.

Примеры

import ast
node = ast.parse('a and b and c', mode='eval').body
print(type(node.op).__name__, len(node.values))  # → And 3
mixed = ast.parse('a and b or c', mode='eval').body
print(type(mixed.op).__name__, type(mixed.values[0].op).__name__)  # → Or And

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности