все Python 3astпонятие
ast.RShift
операторы
Оператор побитового сдвига вправо >> в поле op узлов BinOp и AugAssign.
Синтаксис
ast.RShift()
Сдвиг слабее сложения: a >> 1 + 1 — это a >> (1 + 1), и в дереве справа от RShift стоит BinOp(Add); ast.unparse расставит скобки только там, где они нужны. Для отрицательных чисел >> округляет вниз (-5 >> 1 == -3), что не совпадает с делением с отбрасыванием дробной части в других языках.
Примеры
import ast
n = ast.parse('a >> 1 + 1', mode='eval').body
print(type(n.op).__name__, type(n.right.op).__name__) # → RShift Add
print(-5 >> 1) # → -3
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности