Python Glossary English

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

ast.Lambda

функции и классы

Узел lambda-выражения: args — узел arguments, body — одно выражение (не список инструкций); имени у узла нет.

Синтаксис

ast.Lambda(args, body)

Тело — ровно одно выражение, поэтому в Lambda нет return: результат — сам body. Присваивание 'f = lambda x: x' — это Assign с Lambda в value, и имя f к узлу не привязано: инструменты, перечисляющие функции через FunctionDef, такие пропускают. Параметры устроены так же, как у def: тот же узел arguments со значениями по умолчанию.

Примеры

import ast
a = ast.parse('f = lambda x, y=2: x * y').body[0]
lam = a.value
print(type(a).__name__, type(lam).__name__)  # → Assign Lambda
print([p.arg for p in lam.args.args], type(lam.body).__name__)  # → ['x', 'y'] BinOp

См. также

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