все Python 3astпонятие
ast.UAdd
операторы
Оператор унарного плюса +x в поле op узла UnaryOp.
Синтаксис
ast.UAdd()
Унарный плюс не пустышка: он вызывает __pos__ и для Decimal, например, округляет значение до точности контекста. Поэтому +5 в дереве — UnaryOp(UAdd, Constant(5)), а не Constant, и оптимизатор не вправе его выбросить. Бинарный + — это Add в BinOp.
Примеры
import ast
n = ast.parse('+5', mode='eval').body
print(type(n).__name__, type(n.op).__name__) # → UnaryOp UAdd
from decimal import Decimal, localcontext
with localcontext() as ctx:
ctx.prec = 3
print(+Decimal('1.23456')) # → 1.23
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности