все Python 3astпонятие
ast.Mult
операторы
Маркер бинарного оператора * в дереве ast: лежит в поле BinOp.op и AugAssign.op и полей не имеет.
Синтаксис
ast.Mult()
Звёздочка в Python — это не всегда Mult: '*args' в вызове — Starred, '*rest' в распаковке — тоже Starred, '**' — Pow, а '*' в сигнатуре def отделяет keyword-only параметры и в узлах вовсе не видна. Mult появляется только как бинарная операция 'a * b' или в 'a *= b' (AugAssign).
Примеры
import ast
print(type(ast.parse('a * b', mode='eval').body.op).__name__) # → Mult
call = ast.parse('f(*args)', mode='eval').body
print(type(call.args[0]).__name__) # → Starred
print(type(ast.parse('a ** b', mode='eval').body.op).__name__) # → Pow
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности