Python 3.5+astпонятие
ast.MatMult
операторы
Маркер бинарного оператора @ в дереве ast: лежит в поле BinOp.op и AugAssign.op и полей не имеет.
Синтаксис
ast.MatMult()
Оператор @ (матричное умножение, PEP 465) встроенные типы не поддерживают — его реализуют numpy и подобные через __matmul__. Тот же символ @ перед def — декоратор: он попадает в FunctionDef.decorator_list, а MatMult не создаёт. 'a @= b' — AugAssign с MatMult.
Примеры
import ast
print(type(ast.parse('a @ b', mode='eval').body.op).__name__) # → MatMult
fn = ast.parse('@cache\ndef f(): pass').body[0]
print(fn.decorator_list[0].id) # → cache
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности