Python Glossary English

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

ast.Pow

операторы

Оператор возведения в степень ** в поле op узлов BinOp и AugAssign.

Синтаксис

ast.Pow()

** — единственный правоассоциативный бинарный оператор: 2 ** 3 ** 2 разбирается как 2 ** (3 ** 2), и вложенный BinOp оказывается справа, а не слева. Он связывает сильнее унарного минуса слева: -2 ** 2 — это UnaryOp над BinOp. Тот же Pow стоит в x **= 2, но уже в AugAssign; встроенный pow() — обычный Call.

Примеры

import ast
n = ast.parse('2 ** 3 ** 2', mode='eval').body
print(type(n.op).__name__, type(n.left).__name__, type(n.right).__name__)  # → Pow Constant BinOp
print(2 ** 3 ** 2)  # → 512
import ast
s = ast.parse('x **= 2').body[0]
print(type(s).__name__, type(s.op).__name__)  # → AugAssign Pow

См. также

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