Python Glossary English

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

ast.BitXor

операторы

Класс оператора исключающего ИЛИ ^: экземпляр BitXor() стоит в op узла BinOp или AugAssign. Для множеств это симметрическая разность.

Синтаксис

ast.BitXor()  # ^

Частая ошибка новичка — писать 2 ^ 3, имея в виду степень: в дереве это BitXor, и результат 1, а не 8. Степень — оператор ** и класс Pow. Анализатор, который ищет такие опечатки, как раз проверяет BinOp с BitXor и числовыми Constant с обеих сторон.

Примеры

import ast
node = ast.parse('2 ^ 3', mode='eval').body
print(type(node.op).__name__, eval(compile(ast.Expression(node), '<x>', 'eval')))  # → BitXor 1
print(type(ast.parse('2 ** 3', mode='eval').body.op).__name__)  # → Pow

См. также

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