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