Python Glossary English

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

ast.BitAnd

операторы

Класс побитового оператора &: экземпляр BitAnd() стоит в op узла BinOp или AugAssign (a &= b). Тот же узел даёт и пересечение множеств.

Синтаксис

ast.BitAnd()  # &

Парсер не знает типов, поэтому s1 & s2 для множеств и 6 & 3 для чисел дают одинаковый BinOp с BitAnd. Логическое and сюда не относится — это And в BoolOp, и путаница между ними в анализаторе даёт ложные срабатывания. Узел без полей: проверяют isinstance(node.op, ast.BitAnd).

Примеры

import ast
for src in ['6 & 3', 's1 & s2', 'a and b']:
    node = ast.parse(src, mode='eval').body
    print(type(node).__name__, type(node.op).__name__)
# → BinOp BitAnd / BinOp BitAnd / BoolOp And

См. также

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